作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个简单的 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/
我是一名优秀的程序员,十分优秀!