每次在Python中运行脚本时如何增加变量?

时间:2017-05-16 22:40:30

标签: python

我有一个Python脚本,我想在每次运行时增加一个全局变量。这可能吗?

4 个答案:

答案 0 :(得分:2)

使用外部文件很容易,您可以创建一个函数来为您执行此操作,以便在需要时可以将多个文件用于多个vars,尽管在这种情况下您可能需要查看某种序列化和存储一切都在同一个文件中。这是一个简单的方法:

def get_var_value(filename="varstore.dat"):
    with open(filename, "a+") as f:
        f.seek(0)
        val = int(f.read() or 0) + 1
        f.seek(0)
        f.truncate()
        f.write(str(val))
        return val

your_counter = get_var_value()
print("This script has been run {} times.".format(your_counter))

# This script has been run 1 times
# This script has been run 2 times
# etc.

默认情况下,它会存储在varstore.dat,但您可以将get_var_value("different_store.dat")用于其他计数器文件。

答案 1 :(得分:2)

示例:-

import os
if not os.path.exists('log.txt'):
    with open('log.txt','w') as f:
        f.write('0')
with open('log.txt','r') as f:
    st = int(f.read())
    st+=1 
with open('log.txt','w') as f:
    f.write(str(st))

每次运行脚本时,log.txt中的值将增加1。如果需要,可以使用它。

答案 2 :(得分:1)

是的,您需要将值存储到文件中,并在程序再次运行时将其加载回来。这称为程序状态序列化或持久性。

答案 3 :(得分:1)

代码示例:

with open("store.txt",'r') as f: #open a file in the same folder
    a = f.readlines()            #read from file to variable a
#use the data read
b = int(a[0])                    #get integer at first position
b = b+1                          #increment
with open("store.txt",'w') as f: #open same file
    f.write(str(b))              #writing a assuming it has been changed

使用readlines时,我认为a变量是一个列表。