浅谈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实现的守护进程(Daemon)用法实例
Jun 02 Python
对于Python装饰器使用的一些建议
Jun 03 Python
python构建深度神经网络(续)
Mar 10 Python
Python中asyncio与aiohttp入门教程
Oct 16 Python
python Pandas如何对数据集随机抽样
Jul 29 Python
Python jieba库用法及实例解析
Nov 04 Python
PyCharm 2019.3发布增加了新功能一览
Dec 08 Python
Pytorch根据layers的name冻结训练方式
Jan 06 Python
新建文件时Pycharm中自动设置头部模板信息的方法
Apr 17 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
Jun 02 Python
Python如何合并多个字典或映射
Jul 24 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
Nov 24 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
PHP 检查扩展库或函数是否可用的代码
2010/04/06 PHP
Laravel框架数据库CURD操作、连贯操作总结
2014/09/03 PHP
浅谈PHP中的错误处理和异常处理
2017/02/04 PHP
Lumen timezone 时区设置方法(慢了8个小时)
2018/01/20 PHP
jQuery EasyUI中对表格进行编辑的实现代码
2010/06/10 Javascript
jquery1.5.1中根据元素ID获取元素对象的代码
2011/04/02 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
Knockoutjs 学习系列(一)ko初体验
2016/06/07 Javascript
Jquery基础之事件操作详解
2016/06/14 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
微信小程序wx:for和wx:for-item的用法详解
2018/04/01 Javascript
vue的常用组件操作方法应用分析
2018/04/13 Javascript
JavaScript ES6箭头函数使用指南
2018/12/30 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
2019/09/18 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
2020/09/11 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
2020/10/31 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
Python基于twisted实现简单的web服务器
2014/09/29 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
2018/03/19 Python
python查看列的唯一值方法
2018/07/17 Python
python得到单词模式的示例
2018/10/15 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
在django中自定义字段Field详解
2019/12/03 Python
python with (as)语句实例详解
2020/02/04 Python
我的长生果教学反思
2014/04/28 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
中学生国庆节演讲稿2015
2015/07/30 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
《窃读记》教学反思
2016/02/18 职场文书
分享几个简单MySQL优化小妙招
2022/03/31 MySQL