当前位置: 首页 > news >正文

Python Cookbook-2.2 写入文件

任务

写入文本或者二进制数据到文件中。

解决方案

下面是最方便的将一个长字符串写人文件的办法:

open('thefile.txt','w').write(all_the_text)#写入文本到文本文件
open('abinfiler','wb').write(all_the_data)#写入数据到二进制文件

不过,最好还是给文件对象指定个名字,这样你就可以在完成操作之后调用 close 关闭文件对象。比如,对一个文本文件:

file_object =open('thefile.txt','w')
file_object.write(all_the_text)
file_object.close()

可是,很多时候想写入的数据不是在一个大字符串中,而是在一个字符串列表(或其他序列)中。为此,应该使用writelines方法(不要望文生义,这个方法并不局限于行写人,而且二进制文件和文本文件都适用):

file_object.writelines(list_of_text_strings)
open('abinfile','wb').writelines(list_of_data_strings)

当然也可以先把子串拼接成大字符串(比如用”join)再调用write写入,或者在循环中写人,但直接调用 writelines 要比上面两种方式快得多。

讨论

要创建一个用于写人的文件,必须将 open(或文件对象)的第二个参数指定为“w”以允许写入文本数据,或者“wb”以允许写入二进制数据。当你试图写人而不是读取文件的时候,你更应该重视2.1节提到的关闭文件的建议。只有在文件被正确关闭之后你才能确信数据被写入了磁盘,而不是暂存于内存中的临时缓存中。
分批次将数据写人文件的应用,甚至比分批次从文件中读取数据的应用更为常见,只需准备妥当字符串或者字符串序列,然后反复地调用write或writelines 即可。每个 write操作都会在文件末尾增添新数据,紧随已经写人的旧数据。当你完成了写人工作,可调用close方法来关闭文件对象。如果你能够一次准备好所有需要写人的数据,可以调用 writelines 来一次性完成写人任务,这样更快也更简单。但如果你每次只能准备好一部分数据,那么最好分批次写入。比起另一个方法,即,先在内存中建立一个大的临时数据序列用于存储所有的数据,然后用writelines一次性将所有数据写人文件,分批次写人明显要更好一些。读取和写人这两种操作,在一次性大数据处理和分批次小数据处理这两个方面,性能和方便程度都表现出很大的区别。
当用“w”(或“wb”)选项打开一个文件准备写入数据的时候,文件中原有的数据都将被清除;即使在打开之后迅速关闭,得到的仍然是一个空文件。如果你想把新数据添加在原有的数据之后,应该用“a”(或“ab”)选项来打开文件。还有一些更高级的选项可允许你对同一个文件同时进行读取和写人操作,见第28节中提到的“r+b”选项,那实际上也是高级选项中最常用的一个。

相关文章:

  • ollama run deepseek-r1:1.5b改变默认下载路径
  • 国产编辑器EverEdit - 文本编辑器的关键特性:文件变更实时监视,多头编辑不掉坑
  • LeetCode刷题---哈希表---648
  • 基于springboot校园健康系统的设计与实现(源码+文档)
  • deepseek:推荐一个免费没有广告的电脑桌面备忘录
  • TikTok账户安全指南:如何取消两步验证?
  • easyexcel 2.2.6版本导出excel模板时,标题带下拉框及其下拉值过多不显示问题
  • 【Python爬虫(27)】探索数据可视化的魔法世界
  • Pytorch实现之ISRGAN高分辨率图像生成训练自己的低分辨率图像
  • 3dmax噪波制作镜头震动动画
  • 【网络编程】TCP连接connect几次syn之后一直返回EINVAL问题
  • 使用Geotools读取DEM地形数据实战-以湖南省30米数据为例
  • 模电知识点总结(4)
  • leetcode:3110. 字符串的分数(python3解法)
  • 深入学习解析:183页可编辑PPT华为市场营销MPR+LTC流程规划方案
  • 成员函数定义后面加const是什么功能:C++中const成员函数的作用
  • DP-最长上升子序列
  • 【git】提交修改、回撤、回滚、Tag 操作讲解,与reset (--soft、--mixed、--hard) 的区别
  • sharpGL的openGL兼容性
  • Python的那些事第二十七篇:Python中的“数据魔法师”NumPy
  • 重新认识中国女性|婚姻,古代传统家庭再生产的根本之道
  • 今年一季度全国结婚登记181万对,较去年同期减少15.9万对
  • 铁线礁、牛轭礁珊瑚礁“体检”报告首次发布,专家:菲非法活动产生胁迫性影响
  • “80后”王建浩履新三沙市委常委、组织部部长、秘书长
  • 潘功胜:央行将实施好适度宽松的货币政策,推动中国经济高质量发展
  • 牧原股份一季度归母净利润44.91亿元,同比扭亏为盈