首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法在重启时继续运行python脚本

有没有办法在重启时继续运行python脚本
EN

Stack Overflow用户
提问于 2016-04-19 00:24:28
回答 3查看 295关注 0票数 0

在steps2之后,我希望在步骤3重启后使用相同的脚本运行脚本。如果需要再次手动运行该脚本,我会很好,但是当我运行它时,应该直接转到Step3。

EN

回答 3

Stack Overflow用户

发布于 2016-04-19 00:34:14

实现这一点的一种简单方法是在每个步骤之后写入一个状态文件。当您启动脚本时,您可以从文件中读取,然后进入所需的状态。

票数 1
EN

Stack Overflow用户

发布于 2016-04-19 00:40:53

定义默认状态

代码语言:javascript
运行
复制
DEFAULT_STATE = 'STEP1 START'

将状态信息保存到文件中。

代码语言:javascript
运行
复制
def write_state(state):
    with open('state.txt', 'w') as file_handle:
        file_handle.write(state)
write_state('STEP1 COMPLETE')

然后,只需加载状态文件并检查,看看要做什么:

代码语言:javascript
运行
复制
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')

只需编写一些函数来处理每个状态,然后调用这些函数并更新状态文件。

票数 1
EN

Stack Overflow用户

发布于 2016-04-19 00:48:07

这是一种肮脏的解决方案,但这是你可以做的:

在执行任何步骤之前:

代码语言:javascript
运行
复制
import os.path
if os.path.isfile("step.txt"): # check if this file exists
    step3()
else:
    step1()

函数调用step1step3代表您的代码部分。

在步骤1中:

代码语言:javascript
运行
复制
f = open("step.txt", "w")
f.close()

通过此操作,您将在源代码所在的目录中创建一个空白文本文件step.txt,因此isfile()方法将返回True,因为该文件存在。

完成所有步骤后:

代码语言:javascript
运行
复制
import os
os.remove("step.txt") # clean up
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36699408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档