最好在python中创建一个作业ID计数器?例如,如果作业ID的值为“0”,并且每次有人运行该脚本,则计数器会上升一个?
E.G。
X = 0
Perform_some_process
x +=1
现在x的值将是1,但如果我再次运行脚本x将再次等于1而不是2。如果有人第二次运行脚本x等于2,怎么会这样?等等未来的运行。
答案 0 :(得分:2)
你需要“坚持”反制最简单的方法是使用文件。例如:
import os
def onemore():
f = __file__ + '.counter'
if os.path.exists(f):
with open(f) as thefile:
counter = int(thefile.read())
else:
counter = -1
counter += 1
with open(f, 'w') as thefile:
thefile.write(str(counter) + '\n')
return counter
如果脚本的多个实例在同一时间开始,这可能会产生问题(缺少一些计数) - 如果这是一个问题请告诉我们(并告诉我们您需要处理哪些操作系统)了解有关如何在该关键文件上执行锁定的更多信息。
此解决方案还假定此Python(或字节码)文件所在的目录可由用户在其脚本运行的身份下写入。如果这是一个问题,脚本需要一些配置文件,指示哪个目录保证可由任何可能正在运行脚本的用户写入(并将使用该目录形成字符串f
,计数器文件的名称。)
请注意,我已经将计数器文件的内容保存为易于阅读的形式 - 这是为了便于调试(当文件中只有一个数字时,支付的价格很小)。当然可以将文件保留为二进制形式。
如果您的脚本需要保留许多信息,那么sqlite
数据库文件可能是将它们保存在一起的最便捷方式。