我有以下代码,它使用python将数据写入文本文件(.txt) 持有伯爵。 代码:
f_check = file("/home/ccheck/test/node_file.txt",'r')
f_data = f_check.read()
chk_data = int(f_data)
if(count > chk_data):
print (' ')
print 'count increased to = ', node_count
print (' ')
print 'previous count = ', chk_data
print (' ')
f1 = open("node_file.txt", "w")
n1 = f1.write(str(count) + "\n")
f1.close()
问题:我已经将文本文件中的数据设置为'2'(计数),下次当计数根据逻辑增加时(例如: - 计数增加到3)它应该将数据写入其中并保存相同的数据,但截至目前,它没有在.txt文件中写入增加的计数,上述代码是否需要进行任何更改?
答案 0 :(得分:0)
一个值得注意的问题是,您在阅读文件后没有关闭文件。
我建议您使用with...as
上下文管理器,这样您就不必担心关闭文件了:
with open ("/home/ccheck/test/node_file.txt", 'r') as f:
chk_data = int(f.read().strip())
if(count > chk_data):
with open("/home/ccheck/test/node_file.txt", "w") as f:
f.write(str(count) + "\n")
其他细微更改涉及使用\n
从f.read()
剥离str.strip
。
答案 1 :(得分:0)
您需要注意两件事。
1.您正在阅读f_check = file("/home/ccheck/test/node_file.txt",'r')
的文件并写信至open("node_file.txt", "w")
。 使用写入的绝对路径。
with open('full path file', 'r') as f
类型的样式进行文件选择。答案 2 :(得分:-1)
我认为该文件仍处于打开状态,当计数发生变化时,您将无法再次写入该文件。
chk_data = None
with open("/home/ccheck/test/node_file.txt",'r') as f:
chk_data = int(f.read())
if(count > chk_data):
print (' ')
print 'count increased to = ', node_count
print (' ')
print 'previous count = ', chk_data
print (' ')
with open("/home/ccheck/test/node_file.txt", "w") as f:
f.write(str(count) + "\n")
我做了以下事情: