资讯专栏INFORMATION COLUMN

Python_文件操作

klinson / 3009人阅读

摘要:打开支持相对路径或绝对路径打开只读默认文件必须存在否则会抛出错误写入,如果文件存在,将其覆盖,文件不存在,创建新文件创建一个新文件并打开它以便编写追加,如果文件存在,内容会被写入到已有内容的后边,文件不存在,则创建新文件二进制模式文本模式默

opening and closeing
"buffer", "close", "closed", "detach", "encoding", "errors", "fileno", "flush", "isatty", "line_buffering", "mode", "name", "newlines", "read", "readable", "readline", "readlines", "seek", "seekable", "tell", "truncate", "writable", "write", "writelines"
打开
open("file", "modes") # file: 支持相对路径或绝对路径
open("a.txt", "r")

# modes:
"r"       # 打开只读 (默认) (文件必须存在, 否则会抛出错误)
"w"       # 写入,如果文件存在,将其覆盖,文件不存在,创建新文件
"x"       # 创建一个新文件并打开它以便编写
"a"       # 追加,如果文件存在,内容会被写入到已有内容的后边,文件不存在,则创建新文件
"b"       # 二进制模式
"t"       # 文本模式(默认)
"+"       # 打开磁盘文件以进行更新(读写)

# combination:
"rb"      # 以二进制格式打开一个文件,文件指针将会放在文件开头 (默认)
"wb"      # 二进制格式打开写入文件,如果文件存在,将其覆盖,文件不存在,创建新文件
"ab"
# 视频文件, 图片文件, pdf文件, 音频文件 需要带modes中的b
"r+"      # 打开一个文件用于读写
"w+"
"a+"
"rb+"     # 以二进制格式打开一个文件用于读写,文件指针将会放在文件的开头
"wb+"
"ab+"
关闭
f = open()

f.close() # 关闭
reading and writing
f = open()

f.read()
f.read(2) # 参数: 文件读取的字符数
f = open()

f.write("write in char") # 参数:写入的字符串

"
" # 回车换行
"	" # 横向跳到下一制表符位置
"
" # 回车
copy
f1 = open()

content = f1.read()
name = f1.name
f2 = open(name[:name.rfind(".")] + ".bak")
f2.write(content)

f1.close()
f2.close()
大文件处理方式

读取大文件的时候,禁止使用read(), readline(), readlines()方法读取.

读取小部分内容,多次读取
f1 = open()

while True:
    content = f1.read(1024)
    if not content:
        break
with open()
# 如果文件是基于行的
with open(...) as f:
    for line in f:
        process(line)
fileinput处理
import fileinput
for line in fileinput.input(["xxx.log"]):
    print line
定位读写

seek():指针偏移量
tell(): 指针所在位置

seek(offset, from)

offset # 偏移量 (指针移动)
from # 方向[0: 文件开头, 1: 当前位置, 2: 文件末尾]

f = open()

f.seek(2, 0)
f.readline()
f.close()
文件夹和文件操作

依靠os内置模块, 完成系统相关操作

文件重命名
import os

os.rename("old_name", "new_name")
删除文件
import os
os.remove("file_name") # file_name 待删除的文件
创建文件夹
import os

os.mkdir("folder") # folder 文件夹名字
获取当前目录
import os

os.getcdw() # 返回当前文件所在的绝对路径
获取目录列表
import os

os.listdir("url") # url 列表路径
os.listdir("./")
删除文件夹
import os

os.rmdir("folder") # folder 待删除的文件夹
改变默认目录
import os

os.chdir("../")

# open() 创建在当前目录下,可以改变默认目录,使创建到其它目录下
批量重命名

方法1:
注意重命名的路径问题

import os

folder_name = input("input name:")

file_names = os.listdir(folder_name)

os.chdir(folder_name) # 跳转至指定目录

for name in file_names:
    _name = name[:name.rfind(".")] + "-tt-" + name[name.rfind("."):]
    os.rename(name, _name)

方法2:

import os

folder_name = input("input name:")

file_names = os.listdir(folder_name)

for name in file_names:
    old_file_name = folder_name + "/" + name
    new_file_name = folder_name + "/" + "haha"
    os.rename(old_file_name, new_file_name)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41373.html

相关文章

  • Python技术点

    摘要:内置函数实现对可迭代对象进行进一步处理。文件文件的打开权限打开文件,文件不存在报异常写入文件,文件不存在则创建。文件不存在则创建。追加文件,具有读写权限。 Python基础类型: 1.Tuple元组,内容不可改变,但是允许元素内部存在list等类型的元素,并且允许改变列表的值,所谓内容不可变指的是在内存中指向的地址是不变的。 temp=(1,2,[3,4]) temp[-1]....

    Lionad-Morotar 评论0 收藏0
  • Python基础之(十)模块

    摘要:是回调函数,当链接服务器和相应数据传输完毕时触发本函数可选。仅仅是针对的,在中,已经没有这个模块了,取代它的是。由于以流式读取文件,从而速度较快,切少占用内存,但是操作上稍复杂,需要用户实现回调函数。 编写模块 模块是程序 模块就是一个扩展名为.py的Python程序。 编写模块 #!/usr/bin/env python # coding=utf-8 lang = python 引...

    jlanglang 评论0 收藏0
  • [零基础学Python]不要红头文件(1)

    摘要:如文件存在,则清空该文件,再写入新内容以追加模式打开文件即一打开文件,文件指针自动移到文件末尾,如果文件不存在则创建以读写方式打开文件,可对文件进行读和写操作。以读写方式打开文件,并把文件指针移到文件尾。 这两天身体不给力,拖欠了每天发讲座的约定,看官见谅。 红头文件,是某国特别色的东西,在python里不需要,python里要处理的是计算机中的文件,包括文本的、图片的、音频的、视频...

    changfeng1050 评论0 收藏0
  • 最终篇:简洁易懂,初学者挑战学习Python编程30天 (五)

    摘要:和是最受欢迎的。虚拟环境将允许将项目依赖项与本地机器依赖项隔离开来。文件将是项目中的主文件。运行后,检查本地主机。在中创建一个名为的文件夹,并创建一个名为的文件夹。部署创建帐户为前端和全栈应用程序提供免费部署服务。 ...

    1fe1se 评论0 收藏0
  • Python入门-基本语法1

    摘要:根据有效范围作用域分为全局变量和局部变量。类型以开头标识类型以开头标识类型以进制的字节码表示,实际上是一个字节串,回应了它的另一个名字。 < 返回索引页 基本语法 Hello World 代码注释 关键字 数据类型 变量、常量 变量 变量赋值 变量命名 变量的作用域 常量 字符串与编码 字符转义 字符编码 字符串操作 运算符与表达式 运算符 表达式 ...

    ingood 评论0 收藏0
  • Django 博客开发教程 4 - 让 Django 完成翻译:迁移数据库

    摘要:激活虚拟环境,切换到文件所在的目录下,分别运行和命令注意如果代码中含有中文注释,且你使用的是开发环境的话,会得到一个编码错误。因此请在含有中文注释的文件最开始处加入编码声明。在让完成翻译迁移数据库追梦人物的博客的评论区留言。 我们已经编写了博客数据库模型的代码,但那还只是 Python 代码而已,Django 还没有把它翻译成数据库语言,因此实际上这些数据库表还没有真正的在数据库中创建...

    marek 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<