相关疑难解决方法(0)

在Python中调用外部命令

如何在Python脚本中调用外部命令(就像我在Unix shell或Windows命令提示符下键入它一样)?

python shell terminal command subprocess

4553
推荐指数
57
解决办法
325万
查看次数

即使直系孩子已经终止,Popen仍在等待孩子的过程

我在Windows 8/XP上使用Python 2.7.

我有一个程序A使用以下代码运行另一个程序B:

p = Popen(["B"], stdout=PIPE, stderr=PIPE)
stdout, stderr = p.communicate()
return
Run Code Online (Sandbox Code Playgroud)

B运行批处理脚本C. C是一个长时间运行的脚本,我希望B退出,即使C还没有完成.我使用以下代码完成了它(在B中):

p = Popen(["C"])
return
Run Code Online (Sandbox Code Playgroud)

当我运行B时,它按预期工作.然而,当我运行A时,我预计它会在B退出时退出.但是A等到C退出,即使B已经退出了.关于发生了什么以及可能的解决方案的任何想法?

不幸的是,将A改为看起来像B的明显解决方案不是一种选择.

以下是用于说明此问题的功能示例代码:https: //www.dropbox.com/s/cbplwjpmydogvu2/popen.zip?dl = 1

任何输入都非常感谢.

python subprocess popen

15
推荐指数
1
解决办法
6751
查看次数

os.system 不工作,但在命令提示符中输入相同的内容可以工作

我正在尝试使用命令提示符运行 python abaqus

os.system('abaqus CAE noGUI=ODBMechens')
Run Code Online (Sandbox Code Playgroud)

它似乎没有运行任何东西,但是如果我自己进入命令提示符并输入

abaqus CAE noGUI=ODBMechens
Run Code Online (Sandbox Code Playgroud)

有用。我在 Windows 10 上使用 python 2.7。谢谢

python os.system command-prompt abaqus

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