首页 > 解决方案 > python中的a+命令读取但不附加

问题描述

例如,当我运行以下代码时,我有一个包含 4 行语句“this is shirin”的文本文件,我的文件没有任何反应:

file = open('test.txt', 'a+')
for i in file:
    if len(i) == 0 or 'this' in i:
        file.write('test')
file.close()

标签: pythonfilepermissions

解决方案


当您以追加模式打开文件时,初始位置在末尾,因此没有什么可读取的,循环立即结束。您需要倒退到文件的开头来阅读。而如果你想继续阅读,你需要在写完之后再次寻找。

with open('test.txt', 'a+') as file:
    file.seek(0)
    while True:
        i = file.readline()
        if not i:
            break
        oldpos = file.tell()
        if 'this' in i:
            file.write('test')
            file.seek(oldpos)

推荐阅读