gpt4 book ai didi

python-3.x - 如何将 creationflags=CREATE_NO_WINDOW 与 subprocess.run 一起使用?

转载 作者:行者123 更新时间:2023-12-04 17:38:38 29 4
gpt4 key购买 nike

我正在尝试创建一个简单的 python/tkinter UI 以从 Windows 运行 cygwin 命令。

为了避免出现命令窗口,我使用 pythonw.exe 启动我的 python 脚本。

这是运行 cygwin 命令的代码:

def exec_ls():
clear_log(log)
print_log(log, "*** Running ls -lsa ***\n")
s = subprocess.run(
["C:/cygwin/bin/ksh.exe", "-c", ". /etc/profile; ls -1 c:/test"],
stdout=PIPE,
stderr=STDOUT,
)
print_log(log, s.stdout)
print_log(log, "\n*** END ***")

这运行成功,但是当调用 exec_ls() 时,一个空的命令窗口闪烁。

要删除此窗口的出现,我尝试按如下方式使用 creationflags:

def exec_ls():
clear_log(log)
print_log(log, "*** Running ls -lsa ***\n")
s = subprocess.run(
["C:/cygwin/bin/ksh.exe", "-c", ". /etc/profile; ls -1 c:/test"],
stdout=PIPE,
stderr=STDOUT,
creationflags=CREATE_NO_WINDOW,
)
print_log(log, s.stdout)
print_log(log, "\n*** END ***")

但是我没有得到命令窗口,但是命令也没有运行(没有输出)。

我做错了什么?

最好的问候

最佳答案

我发现了问题:缺少 CREATE_NO_WINDOW 的导入,但由于没有命令窗口,我看不到相应的错误消息。

import subprocess
from subprocess import PIPE, STDOUT, CREATE_NO_WINDOW

我是通过在命令窗口中使用 pythonw.exe 运行我的脚本而不是从我创建的快捷方式中找到它的。

关于python-3.x - 如何将 creationflags=CREATE_NO_WINDOW 与 subprocess.run 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55574693/

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