我在Windows上使用python2.7来使用dcraw和PIL自动化批处理原始转换。
问题是,每当我运行dcraw (每隔几秒钟就会发生一次),我就会打开一个窗口控制台。如果我使用.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)发布于 2010-08-02 20:24:23
调用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"])https://stackoverflow.com/questions/3390762
复制相似问题