我正在尝试运行一个进程,当它完成时,读取stderr和stdout。我发现使用Python实现这一点的唯一方法是创建一个subprocess.Popen,使用subprocess.PIPE作为标准错误和标准输出参数,然后读取Popen.stderr和Popen.stdout文件描述符。
In [133]: subprocess.call(['python', '-c', "import sys; sys.exit(1)"])
Out[133]: 1
In [134]: p = subprocess.Popen(['python'
我正在使用Python和subprocess.Popen来调用系统调用。我在subprocess.Popen参数下传递了非常长的字符串,即self.description值,如下所示。 firstProcess = subprocess.Popen(["echo",self.description], stdout=subprocess.PIPE) 然而,我得到了这个错误,它说:Argument list too long File "/usr/lib/python3.5/subprocess.py", line 1551, in _execute_chi
当使用subprocess.Popen时,我们必须编写
with subprocess.Popen(['ls', '-l', '-a'], stdout=subprocess.PIPE) as proc:
print(proc.stdout.read())
而不是
with subprocess.Popen(['ls', '-l -a'], stdout=subprocess.PIPE) as proc:
print(proc.stdout.read())
为什么?在第二种情况下,ls会得到什么?谢
因此,我设置了一个简短的脚本来执行一个外部程序(用Fortran 77编写)。我想运行这个程序的多个实例,因为我的计算机上有8个核,所以我找到的最简单的解决方案是:
import subprocess
import os
i = n
while(i<n):
dire = "dir/Run"+str(i)+"/"
os.chdir(dire)
p1 = subprocess.Popen(['./mej'])
dire = "dir/Run"+str(i+1)+"/"
os.chdi
我试着用Python做一些非常简单的事情,但没有成功。我想从python内部运行一个可执行文件,这样当调用python脚本退出时-已经启动的exe继续运行。也就是说,要在独立的进程中运行exe,就不需要在进程和创建进程之间进行任何进程间的通信。
Windows 10中当前的目标操作系统(不是linux,因此linux/unix解决方案不适用),但理想情况下,解决方案应该是独立于平台的。我尝试了两种不同的方法:使用subprocess.Popen()和os.system()
我一直未能找到任何“显而易见”的解决方案,或在同一主题的不同帖子中提出的解决方案。下面给出的各种尝试的列表-注释掉了。在这
我想通过我的Python在终端中运行cd命令。我刚刚发现了一个名为subprocess的模块,您知道为什么Popen()方法不改变终端中的目录,它似乎只改变了状态。
if p:
return subprocess.Popen(['cd'], cwd = target_dir, shell = True)
return 'directory does not exist'
航站楼:
<subprocess.Popen object at 0x7f805ef045e0>
当我更改命令时,它似乎在工作:
if p: