使用Python

时间:2017-08-08 06:48:24

标签: python file io

我有以下代码,它使用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文件中写入增加的计数,上述代码是否需要进行任何更改?

3 个答案:

答案 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")

其他细微更改涉及使用\nf.read()剥离str.strip

答案 1 :(得分:0)

您需要注意两件事。

1.您正在阅读f_check = file("/home/ccheck/test/node_file.txt",'r')的文件并写信至open("node_file.txt", "w")使用写入的绝对路径

  1. 使用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")

我做了以下事情:

  1. 使用上下文管理器读取/写入后关闭文件
  2. 更改为写入和读取的完整路径,以确保使用相同的文件。