首页 > Python > 如何追加到文件而不是覆盖它?

如何追加到文件而不是覆盖它?

上一篇 下一篇

如何追加到文件而不是覆盖它?

分割线

网友回答:

您需要通过设置“a”或“ab”作为模式,在追加模式下打开文件。请参阅打开()。

使用“a”模式打开时,写入位置将始终位于文件末尾(追加)。您可以使用“a+”打开以允许读取,向后搜索和读取(但所有写入仍将位于文件末尾!

例:

>>> with open('test1','wb') as f:
        f.write('test')
>>> with open('test1','ab') as f:
        f.write('koko')
>>> with open('test1','rb') as f:
        f.read()
'testkoko'

注意:使用“a”与使用“w”打开并查找到文件末尾不同 – 考虑如果另一个程序打开文件并开始在查找和写入之间写入会发生什么。在某些操作系统上,使用“a”打开文件可以保证所有后续写入将以原子方式附加到文件末尾(即使文件因其他写入而增长)。


有关“a”模式如何操作的更多详细信息(仅在 Linux 上测试)。即使您回头查找,每次写入都会附加到文件末尾:

>>> f = open('test','a+') # Not using 'with' just to simplify the example REPL session
>>> f.write('hi')
>>> f.seek(0)
>>> f.read()
'hi'
>>> f.seek(0)
>>> f.write('bye') # Will still append despite the seek(0)!
>>> f.seek(0)
>>> f.read()
'hibye'

事实上,手册页指出:fopen

在追加模式下打开文件(a 作为模式的第一个字符)
会导致对此流的所有后续写入操作在文件
末尾发生,就像在调用之前一样:

fseek(stream, 0, SEEK_END);

旧的简化答案(不使用):with

示例:(在实际程序中使用 with 关闭文件 – 请参阅文档)

>>> open("test","wb").write("test")
>>> open("test","a+b").write("koko")
>>> open("test","rb").read()
'testkoko'

分割线

网友回答:

将模式设置为 (追加) 而不是 (写入):open()"a""w"

with open("test.txt", "a") as myfile:
    myfile.write("appended text")

该文档列出了所有可用模式。

分割线

网友回答:

我总是这样做,

f = open('filename.txt', 'a')
f.write("stuff")
f.close()

这很简单,但非常有用。

模板简介:该模板名称为【如何追加到文件而不是覆盖它?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Python】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 248次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 02-20
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信模板 微信公众平台 html5 微信图片 响应式 微信文章 企业网站 单页式简历模板 微信素材 自适应
您可能会喜欢的其他模板