python 追加写文件_如何在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 联机帮助页指出:以附加模式打开文件(作为模式的第一个字符)会导致对此流的所有后续写入操作发生在文件结尾处,就像在调用之前一样:fseek(stream, 0, SEEK_END);

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

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

>>> open("test","wb").write("test")

>>> open("test","a+b").write("koko")

>>> open("test","rb").read()

'testkoko'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值