文件处理步骤:打开–操作–关闭
- 打开文件
- 以文本形式打开:
f1=open("E:\\Python\\Files\\Test.txt","rt")
print(f1.readlines())
f1.close()
- 以二进制形式打开:
f2=open("E:/Python/Files/Test.txt","rb")
print(f2.readlines())
f2.close()
注:文件打开目录可使用“E:\python”、“E:/python”, 但不可使用“E:\python”,“\”为转义符。
~~~ 打开模式 :
文件的打开模式 | 描述 |
---|---|
“r” | 只读模式,默认值,如果文件(or文件内容)不存在,返回FileNotFoundError异常 |
“w” | 覆盖写模式,文件(or文件内容)不存在则创建,存在则完全覆盖 |
“x” | 创建写模式,文件(or文件内容)不存在则创建,存在则返回FileExistsError异常 |
“a” | 追加写模式,文件(or文件内容)不存在则创建,存在则在文件最后追加内容 |
“b” | 二级制文件模式 |
“t” | 文本文件模式,默认值 |
“+” | 与r/w/x/a一同使用,在原功能基础上增加同时读写功能 |
例:
f=open(“f.txt”)---------- #文本形式、只读模式、默认值
f=open(“f.txt”,“rt”) -----#文本形式、只读模式、同默认值
f=open(“f.txt”,“w”) ---- #文本形式、覆盖写模式
f=open(“f.txt”,“a+”)— #文本形式、追加写模式+读文件
f=open(“f.txt”,“x”) ---- #文本模式、创建写模式
f=open(“f.txt”,“b”) ---- #二进制模式、只读模式
f=open(“f.txt”,“wb”)— #二进制模式、覆盖写模式
- 文件操作
- 文件内容的读取:
操作方法 | 描述 |
---|---|
f.read(size=-1) | 读取全部内容,如果给出参数,读入前size长度 |
f.readline(size=-1) | 读入一行内容,如果给出参数,读入该行前size长度 |
f.readlines(hint=-1) | 读入文件所有行,以每行为元素形成列表,如果给出参数,读入前hint行 |
- 文件的全文本操作:
#对全文txt进行处理
fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
txt=fo.read() #一次读入,统一处理
fo.close()
#对txt进行处理
fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
txt=fo.read(2) #按数量读入,逐步处理
while txt!="":
txt=fo.read(2)
fo.close()
- 文件的逐行操作:
#逐行遍历文件
fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
for line in fo.readlines():
print(line)
fo.close()
#分行读入,逐行处理
fname=input("请输入要打开的文件名称:")
fo=open(fname,"r")
for line in fo:
print(line)
fo.close()
- 文件的数据写入:
操作方法 | 描述 |
---|---|
f.write(s) | 像文件写入一个字符串或字节流 |
f.writelines(lines) | 将一个元素全为字符串的列表写入文件 |
f.seek(offset) | 改变当前文件操作指针的位置,offset含义如下:0-文件开头;1-当前位置;2-文件结尾 |
例
f.writelines([“Veni”,“Vedi”,“Veci”]) #VeniVediVeci
fo=open(“E:\Python\Files\Test.txt”,“w+”)
Is=[“Veni”,“Vedi”,“Veci”]
fo.writelines(Is)
#fo.seek(0) #回到文件开头 若不加这行,则不会显示任何内容
for line in fo:
print(line)
fo.close()
- 关闭文件
f.close()
内容主要参考中国大学MOOC课程内容