python文本文档_python对文本文件读写的总结

我们常常需要将python的数据结果写入到文本文件中,包括csv格式或者txt格式的文件中,目前我大部分都会操作txt文本文件。下面总结一下操作txt格式文件过程中遇到的问题:

1、每次打开文件写入数据都会覆盖里面之前的东西,即循环多次打开一个文件时候,会存在下一次循环将上一次循环的数据覆盖的情况

withopen('C:\\Users\\Administrator\\Desktop\\标注结果.txt', 'a', encoding='UTF-8') asf:

f.write(id + ' '+ title + "\n")

fori inrange(0, tag_num):

sign_result = str(title_signlist[i])

f.write(sign_result + "\n")

f.close()

这是我写的一个小模块的代码,这里想要不覆盖之前的数据,需要将‘a’这个关键的属性放进去,通常我们都用‘w’这个模式,也就是write模式,但是你open一次txt然后怎么写都不会覆盖之前的内容,但是当对同一个文件多次打开关闭写不同的内容时候,需要将‘w’改成‘a’这样就变为add追加模式,这样就可以多次打开相同的文件进行数据写入了。

对于with这个用法,还是比较牛逼的,通常我们都会使用f.open(),f.close(),f.read()这种比较常规的写法,但是存在一种问题就是假如常规写法你读写文件后忘了使用f.colse()关闭文件了,会有两种情况,一种读取文件时候不关闭会浪费资源,另一种写文件时候不关闭会写不全,因为系统只有在内存比较空闲时候才会将缓存中的数据写到txt中,所以只有调用了f.close()方法后才能够彻底将数据写到txt中。这里with就是一个文件读取管家,你用它就不必写close了,它会默认帮你直接关闭文件,释放内存。所以以后文件操作尽量用with方法来进行。

2、最近下载了一个15G的txt文件,想要读取其中数据看看,用上面的方法不行,后来查了一下

with open('F:_ChineseEmbedding.txt', 'r',encoding='UTF-8') as f:

for line in f:

print(line)

这样就可以一条一条的读取,用f.readlines()这种方法还是会卡死的;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值