Python之----文件操作

文件操作:
读:
f = open("file1","r",encoding="utf-8")

f.read()------全部读,并且是字符串形式。
f.readline()--读第一行
f.readline()--读第二行
f.readlines()-全部读出来,并且是列表形式。
print(f.tell())--查看读取操作完了后,光标的位置
f.seek(0)-----将光标放到起始位置
f.close()
上述方法读取文件,都会把内容存到内存中,大文件的话,这样处理不行。所以以后不建议这么使用。
将文件打开后,一行一行的读取,内存中只存一行内容,方法如下:
for i in f:---此时的f,是一个迭代器?
print(i)
f.close()


写:
f = open("file2","w",encoding="utf-8")---‘w’会新建,如果有,也会覆盖掉
f.write("大傻子")
f.close()

f = open("file2","r+",encoding="utf-8")---读写模式,可以先读,再写,但是写只能写到最后

f = open("file2","w+",encoding="utf-8")---新建再读模式,就算把光标放到前面区,再写,也只能在最后。

f = open("file1","rb")---以二进制、读模式打开
f = open("file1","wb")---以二进制、写模式打开
f = open("file1","ab")---以二进制、追加模式打开

f.flush()-----默认是需要内存积攒到一定程度才开始往硬盘写,该命令使其强行刷新,写到硬盘,其到了实时的作用。
进度条:
import sys,time
for i in range(20):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(1)

修改:
思路:从old文件一行一行的读,读取一行,判断一行。一行一行的写到new文件。
f = open("file1","r",encoding="utf-8")
f_new = open("file1.bak","w",encoding="utf-8")
for line in f:
if "哈哈哈哈" in line:
line = line.replace("哈哈哈哈","我好牛逼")
f_new.write(line)
f.close()
f_new.close()
os.remove("info.txt")---------删除源文件
os.rename("info_new.txt","info.txt")------重命名回去

避免忘记close文件,可以采用如下办法,且可打开多个文件:
with open("file1","r",encoding="utf-8") as f,\
open("file1.bak","r",encoding="utf-8") as f2:
print(f.readlines())
print("-"*20)
print(f2.readlines())

 

转载于:https://www.cnblogs.com/h2o2mno2h2/p/7642835.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值