本文共 2603 字,大约阅读时间需要 8 分钟。
操作模式
r
"""
以只读方式打开文件(默认),文件的指针会放在文件的开头若文件不存在,会报错"""f = open("a.txt", "r") # 在同级目录下打开文件content = f.read()print(content)w"""
以只写方式打开文件,文件的指针也在文件开头,进行覆盖写入(先清空后写入)若文件不存在,会创建一个新的文件"""f = open("a.txt", "w")f.write("66666")a增加b操作
"""
以二进制的方式进行文件操作 rb, wb, ab将一张图片的一半内容写入到另外一个图片中第二章图片可以打开浏览,是只有第一张一半的内容,还是图片质量下降呢?大家可以试一下"""fromFile = open("pic.jpg", "rb")content = fromFile.read()fromFile.close()writeLen = len(conten) // 2toFile = open("pic2.jpg", "wb")toFile.write(content[0:writeLen])toFile.close()文件指针的定位"""
seek(offset, whence=0)whence表示指定文件指针所在的位置whence=0:文件开始处,offset >= 0whence=1:当前的位置,offset is freewhence=2:文件结尾处,offset <= 0但是对于不带 b的文件操作,whence只能为 0"""f = open("a.txt", "r") # 当前文件内容:12345678print(f.tell()) # 获得当前文件指针的位置 0f.seek(2) # 向后移动两个单位print(f.tell()) # 2print(f.read()) # 345678print(f.tell()) # 8文件读操作f.read(length):
f = open("a.txt", "r") # 文件内容:12345
content = f.read(2) print(content) # 12print(f.tell()) # 4readline(limit):f = open("a.txt", "r") # 文件内容:123
456print(f.readline(), end='') # 123
print(f.readline(), end='') # 456readlines():f = open("a.txt", "r") # 文件内容:123
456printf(f.readlines()) # ['123
', '456']遍历f = open("a.txt", "r")
for i in f:print(i, end='')lines = f.readlines()
for line in f:print(line, end='')文件关闭释放系统资源
将内存缓冲区中的内容同步到磁盘中文件写入内容时,并不是立即写入到磁盘文件,而是在对应的内存缓冲区做修改,当文件关闭时,再一次性将这些修改拷贝到磁盘。f.flush() 可以强制刷新内容到磁盘。其他操作依赖于os模块
重命名import os
os.rename("b.txt", "a.txt") # 更改文件名称os.rename("dir1", "dir2") # 更改目录名称删除import os
os.remove("b.txt") # 删除 b.txtos.rmdir("dir1/dir2") # 删除了 dir2目录,若目录不为空,则无法删除os.rmdirs("dir1/dir2") # 递归删除,若dir1为空,也删除创建目录import os
os.mkdir("dir1") # 一次只能创建一个目录,不能递归创建多个目录
路径相关操作文件相关案例
文件复制
import os
scr_file = open("d.txt", "r", encoding="utf-8")
obj_file = open("d_copy.txt", "w", encoding="utf-8")while True:
content = scr_file.read(1024) # 如果文件过大,分块写入if not content:breakelse:obj_file.write(content)scr_file.close()
obj_file.close()文件分类,生成文件清单import os
file_list = os.listdir(".")res = {}for file in file_list:if "." not in file: # 排除掉目录continueappendix = file.split(".")[-1] # 获得扩展名if appendix not in res:
res[appendix] = []res[appendix].append(file)
print(res)注:喜欢python + qun:839383765 可以获取Python各类免费最新入门学习资料!转载于:https://blog.51cto.com/14186420/2349769