【问题标题】:Properly exit a python 3 script正确退出 python 3 脚本
【发布时间】:2022-03-29 01:29:42
【问题描述】:

我正在使用一个脚本来检查 wine 进程是否正确启动。如果没有,请停止 wine 进程并重新启动它,直到程序正确启动。

我的问题是当我使用完程序退出时,我的python脚本仍在终端中运行,并且没有退出。

当我关闭 photoshop.exe 时,有人可以帮助我正确退出脚本吗?

#!/usr/bin/env python3

import subprocess, re

keywords = re.compile('^.*Assertion.*$')

while True:
    process = subprocess.Popen(["wine64", "/home/artik/.wine/drive_c/Program Files/Adobe/Adobe Photoshop CC 2019/Photoshop.exe"], stderr=subprocess.PIPE)
    while True:
        if process.poll():
            break
        line = process.stderr.readline()
        if line == '' and process.poll() is not None:
            break
        if line:
            print(line.strip())
            if keywords.match(str(line)):
                print("Error keyword match, killing process")
                process.kill()
                break
    print("Process return code %d"%process.wait())

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    要明确关闭脚本,请使用:

    import sys
    
    ...
    
    sys.exit()
    

    编辑:似乎 Photoshop 进程仍处于打开状态。在退出之前,请尝试:

    proc.terminate()
    

    但我没有 Photoshop 可以测试。

    【讨论】:

    • 这将在我关闭 Photoshop.exe 时退出我的脚本?我无法让它工作
    【解决方案2】:

    你可以使用exit()sys.exit([reason])如果你想使用sys.exit函数,你必须先导入sys。 如果只想关闭 While 循环,请使用 break。

    【讨论】:

      猜你喜欢
      • 2018-09-03
      • 2019-08-06
      • 2019-11-21
      • 2014-08-27
      • 1970-01-01
      • 2019-07-05
      • 1970-01-01
      • 1970-01-01
      • 2023-01-19
      相关资源
      最近更新 更多