Python如何向文件追加文本?为何a+模式写入后读取返回空值
问题原因
- Python 中使用
a+模式打开文件时,文件指针默认位于文件末尾,写入操作完成后,指针会继续停留在新写入内容的末尾位置。 - 此时直接执行
read()方法,会从指针所在的文件末尾位置开始读取,自然没有内容可以返回,最终打印为空。
正确实现方案
仅追加内容无需读取
如果不需要在写入后立刻读取文件内容,直接写入即可,无需额外操作:
with open("/tmp/newfile.txt", "a+") as myfile: # 单次追加 myfile.write('../') # 如果是持续追加,直接循环写入即可,示例追加10次 # for _ in range(10): # myfile.write('../')
追加后需要读取文件内容
写入完成后调用seek(0)将文件指针移动到文件开头,再执行读取操作即可:
with open("/tmp/newfile.txt", "a+") as myfile: myfile.write('../') # 移动文件指针到文件起始位置 myfile.seek(0) contents = myfile.read() print(contents)
内容的提问来源于stack exchange,提问作者DuckHunt
相关产品推荐
相关产品推荐

