我正在尝试读取文件并使用循环中的其他值写入(覆盖)该文件。
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秒钟。
感谢。
答案 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()