python中关于文件操作
1、文件操作,以只读的形式打开,只读形式打开只能读不能写。
data = open("yesterday",'r',encoding="utf-8") #文件句柄,以只读的形式打开
将打开的文件读一遍
print(data.read()) #文件读一遍光标就到末尾了
2、文件操作,以写模式打开,写模式是创建一个文件,会覆盖掉之前相同的文件
data = open("yesterday",'w',encoding="utf-8") #文件句柄,写模式打开文件,只的是创建一个文件,就会覆盖之前的东西
向文件中写东西
data.write("zkilr\n")
data.write("ruirui\n")
将文件遍历读一遍
print(data.read()) #文件读一遍光标就到末尾了
3、文件以追加的形式打开,不能进行读操作,只能写
data = open("yesterday",'a',encoding="utf-8") #文件句柄,不会覆盖之前的东西,在后面追加,不能读
data.write("zkilr\n")
data.write("ruirui\n")
4、读文件的特定几行
data = open("yesterday",'r',encoding="utf-8") #文件句柄,以只读的形式打开
print(data.readline()) #读第一行
#读前五行
for i in range(5):
print(data.readline())
5、将文件变成一个列表
print(data.readlines()) #把文件变成一个列表
6、打印特定几行文件
#打印特定的某几行,适合处理大型文件
count = 0
for line in data:
if count == 9:
print("__________")
count += 1
continue
print(line)
count += 1
# 打印特定几行,只适合处理特别小的文件
for index,line in enumerate(data.readlines()):
if index == 9:
print("__________")
continue
print(line)
7、
data = open("yesterday",'r',encoding="utf-8") #文件句柄,以只读的形式打开
print(data.tell()) #找到光标所在的位置
print(data.readline())
print(data.tell()) #显示光标所在位置
data.seek(0) #回到位置为0 的位置
print(data.readline()) #读一行
print(data.encoding) #显示编码格式
8、文件截断
# 文件截断
data = open("yesterday",'a',encoding="utf-8") #文件句柄,以只读的形式打开
data.truncate(10)
9、读写形式打开文件,一定要注意读写的顺序
data = open("yesterday",'r+',encoding="utf-8") #文件句柄,读写模式
print(data.readline())
print(data.readline())
data.write("ruirui\n")
data = open("yesterday",'w+',encoding="utf-8") #文件句柄,写读模式
data.write("ruirui\n")
data.write("ruirui\n")
data.write("ruirui\n")
data.seek(0) #回到位置为0 的位置
print(data.readline())
10、二进制文件
data = open("yesterday",'rb') #以二进制形式读文件
print(data.readline())
data = open("yesterday",'wb') #以二进制形式写文件
data.write("hello".encode())
11、修改文件
#文件的修改
data = open("yesterday",'r',encoding="utf-8")
dta2 = open("yesterday2",'w',encoding="utf-8")
for line in data:
if "zkilr" in line:
line = line.replace("zkilr","zkilrruirui")
dta2.write(line)
data.close()
dta2.close()
with open("yesterday","r") as obj1,\
open("yesterday2",'r') as obj2:
for line in obj1:
print(line)