File操作
'''
-a append ,但是不能读
-r read only
-w write 会覆盖创建
'''
#data = open("bigger",encoding="UTF-8").read()
f = open("bigger",'a',encoding="UTF-8") #文件句柄,就是文件的内存对象
data = f.read()
data2 = f.read() #这个时候的赋值已经读到文件尾了,如果要给data2赋值,需要重新将光标返回
print(data)
print("data2",data2)
#Appen to openfile
f.write("Python day 3 study! \n")
f.close()
##write
f = open("bigger2",'w',encoding="UTF-8")
f.write("Python day 3 study! \n") #必须要r模式
f.write("UPUPUP! \n")
##读前5行
f = open("bigger",'r',encoding="UTF-8") #文件句柄,就是文件的内存对象
data = f.read() #这个时候的赋值已经读到文件尾了,如果要给data2赋值,需要重新将光标返回
for i in range(5):
print(f.readline())
f.close()
f = open("bigger",'r',encoding="UTF-8") #文件句柄,就是文件的内存对象
for index,line in enumerate(f.readlines()):
print(index,line.strip())
###高效读文件方式,内存一行行的读
f = open("bigger",'r',encoding="UTF-8") #文件句柄,就是文件的内存对象
for line in f:
print(line)
f.close()
seek()
tell()
encoding()
fileno() -- 返回句柄编号
f.flush() --将缓存刷入硬盘
f.truncate()
with open() as f --
## 进度条标准输出
import sys,time
for i in range(50):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(0.03)
#截断操作
f=open("bigger2",'w',encoding ="UTF-8")
for i in range (5):
f.write("Python day 3 study! \n") #必须要r模式
f.write("UPUPUP! \n")
f.seek(40)
f.truncate()
# 文件修改,澳大利亚是个幅员辽阔的国家。=》》上海is a great city!
f = open("bigger","r",encoding="UTF-8")
f_new = open("bigger_bak","w",encoding = "UTF-8")
for line in f:
if "澳大利亚是个幅员辽阔的国家。" in line:
line = line.replace("澳大利亚是个幅员辽阔的国家。","上海is a great city!")
f_new.write(line)
f.close()
f_new.close()
###利用正则表达式来更新文件
import os import re f = open ("bigger2", "r+") open('bigger_bak', 'w').write(re.sub(r'UP', 'Love python', f.read()))
Appendix
模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |