在steps2之后,我希望在步骤3重启后使用相同的脚本运行脚本。如果需要再次手动运行该脚本,我会很好,但是当我运行它时,应该直接转到Step3。
发布于 2016-04-19 00:34:14
实现这一点的一种简单方法是在每个步骤之后写入一个状态文件。当您启动脚本时,您可以从文件中读取,然后进入所需的状态。
发布于 2016-04-19 00:40:53
定义默认状态
DEFAULT_STATE = 'STEP1 START'
将状态信息保存到文件中。
def write_state(state):
with open('state.txt', 'w') as file_handle:
file_handle.write(state)
write_state('STEP1 COMPLETE')
然后,只需加载状态文件并检查,看看要做什么:
def load_state():
try:
with open('state.txt', 'r') as file_handle:
for line in file_handle:
line = line.strip()
if line != '':
return line
except FileNotFoundError:
return DEFAULT_STATE
if load_state() == 'STEP1 COMPLETE':
launch_step_2()
write_state('STEP2 COMPLETE')
elif load_state() == 'STEP2 COMPLETE'):
launch_step_3()
write_state('STEP3 COMPLETE')
只需编写一些函数来处理每个状态,然后调用这些函数并更新状态文件。
发布于 2016-04-19 00:48:07
这是一种肮脏的解决方案,但这是你可以做的:
在执行任何步骤之前:
import os.path
if os.path.isfile("step.txt"): # check if this file exists
step3()
else:
step1()
函数调用step1
和step3
代表您的代码部分。
在步骤1中:
f = open("step.txt", "w")
f.close()
通过此操作,您将在源代码所在的目录中创建一个空白文本文件step.txt
,因此isfile()
方法将返回True
,因为该文件存在。
完成所有步骤后:
import os
os.remove("step.txt") # clean up
https://stackoverflow.com/questions/36699408
复制相似问题