Python - 如果脚本失败则撤消脚本

时间:2017-08-17 07:47:51

标签: python undo

有时当我在我的python脚本中运行一个函数并且函数给我一个不需要的输出时,我需要撤消这一步,然后尝试使用不同的参数再次运行该函数。如果我的函数给出了错误的输出,是否有一种方法可以让脚本撤消它所做的事情。只有一组参数,实现了所需的输出。

PS:通过运行该功能意味着进行永久性更改。

示例:

def function():
    for i in range(parameters):
        value = perform_operation(parameters[i]) #makes permanent changes 
        if value != some_value:
            undo(perform_operation()) 

1 个答案:

答案 0 :(得分:2)

你需要创建另一个函数,而不是清理main函数中的内容(删除新创建的文件,删除已安装的软件包等等)并使用它。

def main_func():
    proc = subprocess.Popen('touch test test2')
    return proc.returncode

def clean_main_func():
   subprocess.Popen('rm test test2')


def __name__ == '__main__':
    result = main_func()
    if main_func() != 0 :
       clean_main_func()

或者您可以提出错误然后抓住它:

def main_func():
    proc = subprocess.Popen('touch test test2')
    if proc.returncode !=0 :
       raise Error

def clean_main_func():
   subprocess.Popen('rm test test2')


def __name__ == '__main__':
    try:
        result = main_func()
    except Error:
        clean_main_func()

这是一个例子,希望它能回答你的问题。