使用Python递增存储在文件中的计数器

2024-09-27 07:33:08 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码使用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'(count),下次当计数根据逻辑增加时(例如:-count增加到3),它应该在其中写入数据并保存相同的内容,但是到现在为止它没有将增加的计数写入.txt文件,上面的代码是否需要更改?在


Tags: 数据代码txtnodehomedatacheckcount
3条回答

我认为该文件仍处于打开状态,当计数发生变化时,您将无法再次写入该文件。在

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. 已更改为写入和读取的完整路径,以确保使用相同的文件。在

一个值得注意的问题是,您在读取文件后没有关闭文件。在

我建议您使用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")

其他小的改变包括使用str.stripf.read()中剥离{}。在

有两件事你需要注意。在

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类型的样式。在

相关问题 更多 >

    热门问题