Python文件附加输出,而不是覆盖

时间:2016-02-22 18:04:06

标签: python file append

我正在尝试读取文件并使用循环中的其他值写入(覆盖)该文件。

a="1"
b="2"

for line in list:
    if os.path.exists(str(line.rstrip('\n'))):
        print line
        with open('/ifs/data/Scripts/currentNode.txt','r+') as nodeNumber:

            if nodeNumber.readline().rstrip('\n') == a:
                print "Origin 1"
                nodeNumber.write("2")
#                nodeNumber.close()

            elif nodeNumber.readline().rstrip('\n') == b:
                print "Origin 2"
                nodeNumber.write("1")
#                nodeNumber.close()

        time.sleep(5)

上面的代码只打印“Origin 1”。文件currentNode.txt的编号为1。由于某种原因,它不会覆盖该文件。如果我输出文件,我会看到'1',但如果我打开我看到的文件

1
2

为什么文件没有被覆盖的任何想法?我认为代码运行速度快了5秒钟。

感谢。

1 个答案:

答案 0 :(得分:0)

以下是使用seek()和truncate()在python中读取和覆盖文件的方法:

a="1"
b="2"

f = open('/ifs/data/Scripts/currentNode.txt', 'r+')
contents = f.read()
f.seek(0)
f.truncate()
if a in contents:
    print "Origin 1"
    f.write(b)
elif b in contents:
    print "Origin 2"
    f.write(a)
f.close()