当前位置: 首页 > 面试题库 >

如何从Python(2.7)的生成进程中消除Windows控制台?

胡利
2023-03-14
问题内容

我在Windows上使用python 2.7使用dcraw和PIL自动执行批RAW转换。

问题是,每当我运行dcraw时(每隔几秒钟发生一次),我都会打开一个Windows控制台。如果我以.py格式运行脚本,那么它只会打开主窗口,所以不会那么令人讨厌,但是我更希望仅显示GUI。

我像这样涉及到它:

args = [this.dcraw] + shlex.split(DCRAW_OPTS) + [rawfile]
proc = subprocess.Popen(args, -1, stdout=subprocess.PIPE)
ppm_data, err = proc.communicate()
image = Image.open(StringIO.StringIO(ppm_data))

感谢里卡多·雷耶斯

次要修订到配方,在2.7看来,你需要得到STARTF_USESHOWWINDOW来自_subprocess(您也可以使用pywin32,如果你想要的东西,可能是有点不容易改变),所以为后人:

suinfo = subprocess.STARTUPINFO()
suinfo.dwFlags |= _subprocess.STARTF_USESHOWWINDOW
proc = subprocess.Popen(args, -1, stdout=subprocess.PIPE, startupinfo=suinfo)

问题答案:

调用Popen时,需要设置 startupinfo 参数。

这是来自Activestate.com食谱的示例:

import subprocess

def launchWithoutConsole(command, args):
    """Launches 'command' windowless and waits until finished"""
    startupinfo = subprocess.STARTUPINFO()
    startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
    return subprocess.Popen([command] + args, startupinfo=startupinfo).wait()

if __name__ == "__main__":
    # test with "pythonw.exe"
    launchWithoutConsole("d:\\bin\\gzip.exe", ["-d", "myfile.gz"])


 类似资料:
  • 问题内容: 作为Node.js环境和哲学的新手,我想回答几个问题。我已经下载了Windows安装程序的node.js和节点包管理器.Windows Cmd提示符当前用于运行nodejs应用程序。 cls清除命令窗口或命令提示符中的错误。有node.js的等效项吗?console.clear不存在;(或是否以其他形式存在? 我通过下面的代码创建了一个服务器 我将代码更改为下面的代码,并刷新了浏览器,

  • 问题内容: 我尝试了很多方法,例如 和 而且转义序列也不起作用 问题答案: 所有你需要的是 :

  • 问题内容: 我在Ubuntu上使用,并且有一个Python 2.7脚本可以打印并说出一条消息: 产生所需的声音,但由于一些错误(,没有套接字连接)而使外壳混乱,因此我无法轻松读取之前打印的内容。退出代码为0。 不幸的是,没有记录的选项可以关闭它的冗长性,因此我正在寻找一种方法,仅在视觉上使其静音并保持打开的外壳干净以进行进一步的交互。 我怎样才能做到这一点? 问题答案: 将输出重定向到DEVNUL

  • 问题内容: 我正在使用Pygame / SDL的操纵杆模块从游戏手柄获取输入。每次调用它的方法时,它都会打印到控制台。这是有问题的,因为我使用控制台来帮助我进行调试,现在每秒被淹没60次。有什么方法可以禁用此功能吗?通过Pygame / SDL中的选项还是在函数调用时取消控制台输出?我在Pygame文档中没有提到这一点。 编辑: 原来是由于在编译SDL库时打开了调试功能。 问题答案: 这是来自jo

  • 现在,我想生成一些样板服务器端代码:控制器及其方法。我的API将使用ASP.NET Core2编写。那么,是可能使用某种发电机还是我应该手动? 附言。我知道我可以生成客户端代码,但我现在不需要它...

  • 问题内容: 我需要一个跨平台的解决方案来清除用C ++编写的Linux和Windows中的控制台。这样做有什么功能吗?另请注意,我不希望最终用户程序员必须更改程序中的任何代码以使其在Windows vs Linux中清晰可见(例如,如果必须在两个函数之间进行选择,则必须做出决定)在运行时或在编译时自主)。 问题答案: 简短的答案:您不能。 更长的答案:使用curses库(在Unix 上为ncurs