一、文件操作
打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。
打开文件的模式有:
r :只读【只读:默认模式,指针在开头】
w :只写【只写;存在则覆盖,不存在则创建】
a :追加【追加:存在则追加,不存在创建在写入】
r+ :读写【读写:指针默认在开头,写入时会覆盖目标位置内容】
w+ :写读【写读:存在则覆盖,不存在则创建】
a+ :写读【写读:存在则追加,不存在创建在写入】
rb 或 r+b 【以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。】
wb 或 w+b 【以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。】
ab 或 a+b 【以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放】
rb+【以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。】
wb+【以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。】
ab+【以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。】
不带b的打开方式都是字符串类型
带b的打开方式都为字节(二进制)类型
open() #打开文件
f.seek() #调整指针位置
f.write() #写入内容
f.close() #关闭文件
f.tell() #获取指针的位置
f.read() #读取文件内容,从前往后读
f.flush() #刷新缓冲区
f.readline() #读一行
f.truncate() #截取内容,截取当前指针之前的内容,直接操作原文件
with open("1.txt.py", "r+",) as f: 不用写f.close()了
支持同时打开两个文件,多个用逗号隔开
应用场景,将1.txt内容复制到2.txt中,
with open("1.txt", "r") as file1, open("2.txt","w") as file2:
for line in file1:
file2.write(line)
读取一个文件每一行的三证方式:
# 方法1
f = open("2.txt", "r+")
line = f.readline()
while line:
print line
line = f.readline()
f.close()
# 方法2
f = open("2.txt", "r+")
ret = f.readlines()
for line in ret:
print line
f.close()
# 方法3
f = open("2.txt", "r+")
for line in f.readlines():
print line
f.close()