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+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

 

转载于:https://www.cnblogs.com/ywyin/p/8993963.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值