gpt4 book ai didi

python - 带有子进程模块的进程永远不会停止运行

转载 作者:太空宇宙 更新时间:2023-11-03 21:08:52 25 4
gpt4 key购买 nike

我刚刚开始在 Python 3 上使用 subprocess 模块,但我无法弄清楚它到底是如何工作的。这是我编写的用于打开和关闭 USB 端口电源的函数。它可以工作,但随后它会无限期地运行,我无法执行任何其他操作,直到使用 Ctrl+C 强制它停止。打印语句也永远不会被调用:

def usb_power_toggle(s):
power_off, power_on = "echo '1-1' |sudo tee sys/bus/usb/drivers/usb/unbind", "echo '1-1' |sudo tee /sys/bus/usb/drivers/usb/bind"
if s == "off":
subprocess.run(power_off, shell = True)
print("USB power off!")
elif s == "on":
subprocess.run(power_on, shell = True)
print("USB power on!")
else:
raise ValueError

有人知道问题出在哪里吗?您能告诉我如何在进程完成其预期功能后关闭该进程吗?

最佳答案

只需使用popen

    def usb_power_toggle(s):
from os import popen
power_off, power_on = "echo '1-1' |sudo tee sys/bus/usb/drivers/usb/unbind", "echo '1-1' |sudo tee /sys/bus/usb/drivers/usb/bind"
if s == "off":
popen(power_off)
print("USB power off!")
elif s == "on":
popen(power_on)
print("USB power on!")
else:
raise ValueErro

关于python - 带有子进程模块的进程永远不会停止运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55199554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com