相关疑难解决方法(0)

当我使用os.system()或subprocess.call()时,如何隐藏控制台?

我写了一些如下的陈述:

os.system(cmd) #do something
subprocess.call('taskkill /F /IM exename.exe')
Run Code Online (Sandbox Code Playgroud)

两者都会弹出一个控制台.

如何阻止它弹出控制台?

python windows console subprocess

59
推荐指数
2
解决办法
4万
查看次数

作为Windows服务运行的Python:OSError:[WinError 6]句柄无效

我有一个Python脚本,它作为Windows服务运行.该脚本分叉另一个进程:

with subprocess.Popen( args=[self.exec_path], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) as proc:
Run Code Online (Sandbox Code Playgroud)

这会导致以下错误:

OSError: [WinError 6] The handle is invalid
   File "C:\Program Files (x86)\Python35-32\lib\subprocess.py", line 911, in __init__
   File "C:\Program Files (x86)\Python35-32\lib\subprocess.py", line 1117, in _get_handles
Run Code Online (Sandbox Code Playgroud)

python windows subprocess

13
推荐指数
1
解决办法
7982
查看次数

如何避免使用包含os.system调用的.pyw文件的控制台窗口?

如果我将我的代码文件保存为.pyw,则不会出现控制台窗口 - 这就是我想要的 - 但如果代码包含调用os.system,我仍然会得到一个讨厌的控制台窗口.我认为这是由呼叫引起的os.system.有没有办法从我的.pyw脚本中执行其他文件而根本不提高控制台窗口?

python windows console windows-console pythonw

12
推荐指数
4
解决办法
7776
查看次数

从Python执行子进程而不打开Windows命令提示符

可能重复:
在没有控制台的情况下使用Popen在pythonw中运行进程
如何从Python(2.7)中的衍生进程中消除Windows控制台?

我有一个Python程序,它调用一个单独的数字运算程序(用C语言编写)作为子进程多次(使用subprocess.check_call).它在Linux上运行良好,除了一件小事之外,它在Windows上运行良好:每次调用子进程时,都会创建一个命令提示符窗口,然后在子进程退出时很快就会被销毁.

这根本不会影响计算,但是它非常烦人,因为这个窗口一直在屏幕上闪烁,这使得在计算机上执行其他操作很困难,因为新的命令提示符窗口可以窃取键盘焦点.

如何简单地执行子进程(没有GUI),并阻止创建命令提示符窗口?

python windows subprocess

9
推荐指数
1
解决办法
1万
查看次数

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

可能重复:
在没有控制台的情况下使用Popen在pythonw中运行进程

我在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))
Run Code Online (Sandbox Code Playgroud)

感谢Ricardo Reyes

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

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

python windows subprocess popen

6
推荐指数
1
解决办法
2357
查看次数

标签 统计

python ×5

windows ×5

subprocess ×4

console ×2

popen ×1

pythonw ×1

windows-console ×1