浅谈python写入大量文件的问题


Posted in Python onNovember 09, 2018

今天准备把几个txt文件合并成一个文件时,用f.write方法写入时,发现程序执行完了,本应该十万行左右的txt记录,实际上只被写入了4k多行。

网上查了是因为程序执行速度太快,以至于读到内容还没有完全写入文件,文件就已经关闭了

方法一:加入缓冲区

f.flush()
//operation
os.fsync(output)
f.close()

打开文件后执行flush(),关闭文件前执行os.fsync()确保缓冲区的内容都写出去了。

方法二:用sleep

用了上述方法不行,因为我在打开文件后用了迭代输出,可能会让缓冲区爆炸,在循环中加入sleep函数可以确保每次循环都能将内容写入

with open(outputfile,'a') as output:
  for i in all_txt_name:
   f =open(dir+'/'+i)
   for a in f:
    output.write(a)
    time.sleep(0.00000001)
   f.close()

后来发现:

txt文件如果太大,在pycharm中只会显示一小部分,可能是指显示了部分文件导致未以为文件没写进去,fuck

以上这篇浅谈python写入大量文件的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python自定义进程池实例分析【生产者、消费者模型问题】
Sep 19 Python
Linux 下 Python 实现按任意键退出的实现方法
Sep 25 Python
使用Python进行QQ批量登录的实例代码
Jun 11 Python
Python SMTP发送邮件遇到的一些问题及解决办法
Oct 24 Python
对python pandas 画移动平均线的方法详解
Nov 28 Python
Python爬虫——爬取豆瓣电影Top250代码实例
Apr 17 Python
django项目登录中使用图片验证码的实现方法
Aug 15 Python
如何给Python代码进行加密
Jan 10 Python
Python异步编程之协程任务的调度操作实例分析
Feb 01 Python
Python之Matplotlib文字与注释的使用方法
Jun 18 Python
Python压缩模块zipfile实现原理及用法解析
Aug 14 Python
python分布式爬虫中消息队列知识点详解
Nov 26 Python
启动Atom并运行python文件的步骤
Nov 09 #Python
Python产生Gnuplot绘图数据的方法
Nov 09 #Python
python pyheatmap包绘制热力图
Nov 09 #Python
Django 视图层(view)的使用
Nov 09 #Python
Python创建一个空的dataframe,并循环赋值的方法
Nov 08 #Python
CentOS 7下安装Python3.6 及遇到的问题小结
Nov 08 #Python
python 高效去重复 支持GB级别大文件的示例代码
Nov 08 #Python
You might like
多数据表共用一个页的新闻发布
2006/10/09 PHP
MySQL数据源表结构图示
2008/06/05 PHP
PHP 文件类型判断代码
2009/03/13 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
2014/09/27 PHP
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
php的laravel框架快速集成微信登录的方法
2016/12/12 PHP
php5.x禁用eval的操作方法
2018/10/19 PHP
php桥接模式应用案例分析
2019/10/23 PHP
JS弹出对话框返回值代码(asp.net后台)
2010/12/28 Javascript
学习JavaScript设计模式(策略模式)
2015/11/26 Javascript
jquery ztree实现树的搜索功能
2016/02/25 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
2017/02/10 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
javascript Function函数理解与实战
2017/12/01 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
jQuery实现左右滑动的toggle方法
2018/03/03 jQuery
Vue组件实现触底判断
2019/06/26 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
2019/08/20 Javascript
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
在Python中操作时间之strptime()方法的使用
2020/12/30 Python
在Python的Django框架中创建语言文件
2015/07/27 Python
详解在Python程序中自定义异常的方法
2015/10/16 Python
Python中Django 后台自定义表单控件
2017/03/28 Python
Python 基础教程之str和repr的详解
2017/08/20 Python
Python subprocess模块详细解读
2018/01/29 Python
Python实现简单http服务器
2018/04/12 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
python的列表List求均值和中位数实例
2020/03/03 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
大学生毕业求职的自我评价
2013/09/29 职场文书
社会工作专业自荐信
2014/09/26 职场文书
观看焦裕禄观后感
2015/06/09 职场文书
2015入党自传书范文
2015/06/26 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS