0

我想编写一个脚本来完成一些特定的工作,每次工作完成后,我想将 a 增加job_done_count1,也就是说,如果我运行脚本 10 次,job_done_count将会是10.

这就是这个脚本的样子,

#!/usr/bin/env python

job_done_count = 0   
...

if __name__ == '__main__':
    do_the_job()
    job_done_count += 1

我想知道它是否有效。因为,每次我运行脚本时,job_done_count都会设置为 0,然后是 1。它根本不记得工作完成了多少次。

我不应该把它job_done_count放在剧本里吗?

4

2 回答 2

3

您可以picklejob_done_count变量放入文件中:

import os, pickle

if os.path.exists('job_count.pickle'):
    with open('job_count.pickle', 'rb') as handle:
        job_done_count = pickle.load(handle)
else:
    job_done_count = 0

...

if __name__ == '__main__':
    do_the_job()
    job_done_count += 1

    with open('job_count.pickle', 'wb') as handle:
        pickle.dump(job_done_count, handle)
于 2012-09-19T02:30:59.100 回答
3

或者不要使用泡菜并通过以下任何一种方式进行操作。

用手

with open("jobs_done.txt") as inp:
    job_done_count = int(inp.read().strip())

json

with open("jobs_done.json") as inp:
    job_done_count = json.load(inp)['jobs_done']

或者用十亿其他方法!

于 2012-09-19T03:20:42.107 回答