Python:在没有cmd接口或隐藏或后台的子shell中执行命令

时间:2010-09-16 17:18:10

标签: python cmd

我想知道如何执行命令whitout出现在cmd窗口中。 我的代码是Python和O.S.是Windows7。

有问题的一行是: os.system(pathandarguments)

程序工作正常,用参数执行给定的路径但是我放松了对程序的控制,因为我的程序窗口最小化,我看到cmd窗口一秒钟,然后我的窗口程序不会最大化。

我想执行字符串pathandarguments而不会最小化我的主窗口。我更喜欢,如果可能的话,不要显示cmd窗口。 我试过不同的方法来做到这一点:

os.system(pathandarguments) =工作正常,但最小化了我的程序窗口。

os.popen(pathandarguments) = ERROR: CThread::staticThread : Access violation at 0x77498c19: Writing location 0x00000014(不要工作)

subprocess.Popen([pathandarguments], shell=False) = python脚本中的异常onAction(不工作)

提前致谢。

修改 @martineau,问题不是我无法导入进程,修改我的应用程序的日志我看到问题是在第146行的导入过程:

13:42:20 T:4116 M:2156859392  NOTICE: import win32api
13:42:20 T:4116 M:2156859392  NOTICE: ImportError
13:42:20 T:4116 M:2156859392  NOTICE: :
13:42:20 T:4116 M:2156859392  NOTICE: No module named win32api

我没有模块win32api。

1 个答案:

答案 0 :(得分:1)

很长一段时间以来,我一直在使用开源Python模块进行过程控制,名为 process-python 。那里的项目状态说“在目前的状态下,它在商业Komodo IDE项目中得到了大量使用。”它是多平台的,但我开始使用它的主要原因之一是因为在Windows上它会产生一个没有控制台窗口的进程。它使用起来非常简单。这是一个简单的例子:

import process

p = process.ProcessOpen([eventfilepath]) # open text file with associated program
ignored_exitstatus = p.wait()

希望这有帮助。