【问题标题】:How to run console application silently in Python (on windows) [duplicate]如何在 Python 中静默运行控制台应用程序(在 Windows 上)[重复]
【发布时间】:2011-02-19 18:35:46
【问题描述】:

可能重复:
How do I eliminate Windows consoles from spawned processes in Python (2.7)?

嗨,

在我的应用程序中,我使用的是外部控制台应用程序。 我正在捕获它的输出(来自标准输出)并处理它。尽管每次我启动此应用程序时都会弹出控制台窗口,这是一个问题(因为在计算过程中我无法将计算机用于其他任何事情),但发生了什么。有没有办法执行控制台应用程序,在没有实际弹出控制台窗口的情况下捕获它的标准输出? 正在执行控制台应用程序的代码:

p = subprocess.Popen([BCALCPATH, "-c", hand, "-t", "a", "-e", "e", "-q", "-d SWNE"], stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
table = p.stdout.read().decode()

所有这些 -c、-t 等都是控制台应用程序的参数。 BCALCPATH 是 .exe 文件的路径。 感谢您的帮助:)

【问题讨论】:

  • 感谢您的回复,我也创建了这个:stackoverflow.com/questions/4703983/…;似乎 3.1.3 有一些问题,并且那些标志不存在。但是在文档中也找不到它们:(
  • 你链接的问题有你的答案——这些属性已移至subprocess_ 模块,你只需要在较新的 Python 版本中从那里获取它们。
  • 正如您引用的问题的答案所说,您可以从_subprocess 导入STARTF_USESHOWWINDOW 而不是subprocess。或者使用pywin32 并从win32process 导入。或者只使用1;这是一个不可能改变的常数。
  • 谢谢大家;我不知道这个 _subprocess 模块,因为它不在 python 3.1.3 的参考中。这就像一个魅力,ty:)

标签: python windows console-application popen


【解决方案1】:

创建 Python 脚本的 Windows 快捷方式,然后将快捷方式的 Run 属性设置为 Minimized

【讨论】:

  • 它不起作用。如何通过 Python 或 Java 以编程方式进行最小化?
【解决方案2】:

您可以尝试使用hstart 之类的实用程序。不过,您可能必须将输出重定向到文件,然后在命令完成后从中读取。 Cygwin 有一个类似的工具,叫做run.exe,如果你手头有的话。

【讨论】:

    猜你喜欢
    • 2015-03-04
    • 2019-06-28
    • 1970-01-01
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    • 2019-01-30
    • 1970-01-01
    相关资源
    最近更新 更多