Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中实现全局配置_Python - Fatal编程技术网

在Python中实现全局配置

在Python中实现全局配置,python,Python,我想写一个脚本来完成一些特定的任务,每次任务完成时,我想将job\u done\u count增加1,也就是说,如果我运行脚本10次,job\u done\u count将是10 这就是这个脚本的样子 #!/usr/bin/env python job_done_count = 0 ... if __name__ == '__main__': do_the_job() job_done_count += 1 我有点怀疑它是否有效。因为,每次我运行脚本时,job\u d

我想写一个脚本来完成一些特定的任务,每次任务完成时,我想将
job\u done\u count
增加1,也就是说,如果我运行脚本10次,
job\u done\u count
将是
10

这就是这个脚本的样子

#!/usr/bin/env python

job_done_count = 0   
...

if __name__ == '__main__':
    do_the_job()
    job_done_count += 1
我有点怀疑它是否有效。因为,每次我运行脚本时,
job\u done\u count
将设置为0,然后设置为1。它根本不记得这项工作做了多少次

我不应该把这个
job\u done\u count
放在脚本中吗?

您可以将
job\u done\u count
变量放在一个文件中:

导入操作系统,pickle
如果os.path.exists('job\u count.pickle'):
以open('job_count.pickle','rb'作为句柄:
作业\完成\计数=pickle.load(句柄)
其他:
作业\完成\计数=0
...
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
做你的工作
作业完成计数+=1
以open('job_count.pickle','wb')作为句柄:
pickle.dump(作业\完成\计数、处理)
您可以将
作业完成数
变量保存到文件中:

导入操作系统,pickle
如果os.path.exists('job\u count.pickle'):
以open('job_count.pickle','rb'作为句柄:
作业\完成\计数=pickle.load(句柄)
其他:
作业\完成\计数=0
...
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
做你的工作
作业完成计数+=1
以open('job_count.pickle','wb')作为句柄:
pickle.dump(作业\完成\计数、处理)

或不要使用pickle,请按以下任何方式进行

手工

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


或者用十亿其他的方法

或者不要使用pickle,用以下任何一种方法来做

手工

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


或者用十亿其他的方法

您可以使用将
job\u done\u count
保存到一个文件中,并在每次运行时将其还原。因此,如果我将
job\u done\u count
放在脚本中,那么我将无法获得正确的值。为什么?首先从文件中获取,然后将其保存到文件中。为什么不正确?您可以使用将
job\u done\u count
保存到一个文件中,并在每次运行时将其还原。因此,如果我将
job\u done\u count
放在脚本中,那么我将无法获得正确的值。为什么?首先从文件中获取,然后将其保存到文件中。为什么不正确?您可能希望在保存pickle之前增加
job\u done\u count
。对于这样一个简单的整数,您真的不需要费心进行pickle。只需使用
handler.write(str(job\u done\u count))
将其写入文件,然后使用
int(handle.read())还原即可。更简单,任何其他程序也可以读取和写入文件。这两种解决方案仅相差几个字符。我更喜欢
pickle
,因为
job\u done\u count
几乎可以用任何其他Python对象替换,代码仍然可以很好地工作。在保存pickle之前,您可能希望增加
job\u done\u count
。对于这样的简单整数,您真的不需要费事对其进行pickle。只需使用
handler.write(str(job\u done\u count))
将其写入文件,然后使用
int(handle.read())还原即可。更简单,任何其他程序也可以读取和写入文件。这两种解决方案仅相差几个字符。我更喜欢
pickle
,因为
job\u done\u count
几乎可以用任何其他Python对象替换,代码仍然可以很好地工作。10亿个方法可能有点高估了。;-)xml呢?:)我同意在这里使用pickle是过分的,它会产生一个不容易从其他语言检查的文件。十亿个方法可能会有点高估。;-)xml呢?:)我同意在这里使用pickle是过分的,它会产生一个不容易从其他语言检查的文件。