实际上我正在/想要在单个python脚本中执行: 1.使用Python我正在向磁盘写入一些数据 2.重新启动 3.验证数据 4.其他步骤
在第2步之后,我希望脚本应该在第3步重启后使用相同的脚本运行。 我很好,如果需要再次手动运行脚本,但是当我运行它时应该直接转到Step3。
答案 0 :(得分:1)
实现此目的的一种简单方法是在每个步骤之后创建一个您写入的状态文件。启动脚本时,您可以从文件中读取,然后继续执行所需的状态。
答案 1 :(得分:1)
定义默认状态
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')
只需编写一些函数来处理每个状态,然后调用函数并更新状态文件。
答案 2 :(得分:0)
一种肮脏的解决方案,但这是你可以做的:
在采取任何步骤之前:
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