小编Ins*_*cal的帖子

管道子进程标准输出到变量

我想pythong使用子进程模块运行命令,并将输出存储在变量中.但是,我不希望将命令的输出打印到终端.对于此代码:

def storels():
   a = subprocess.Popen("ls",shell=True)
storels()
Run Code Online (Sandbox Code Playgroud)

我在终端中获取目录列表,而不是将其存储在a.我也尝试过:

 def storels():
       subprocess.Popen("ls > tmp",shell=True)
       a = open("./tmp")
       [Rest of Code]
 storels()
Run Code Online (Sandbox Code Playgroud)

这也会将ls的输出打印到我的终端.我甚至尝试过这个有点过时的os.system方法的命令,因为ls > tmp在终端中运行根本不会打印ls到终端,而是存储它tmp.但是,同样的事情发生了.

编辑:

遵循marcog的建议后,我得到以下错误,但仅在运行更复杂的命令时.cdrecord --help.Python吐了出来:

Traceback (most recent call last):
  File "./install.py", line 52, in <module>
    burntrack2("hi")
  File "./install.py", line 46, in burntrack2
    a = subprocess.Popen("cdrecord --help",stdout = subprocess.PIPE)
  File "/usr/lib/python2.6/subprocess.py", line 633, in __init__
    errread, errwrite)
  File "/usr/lib/python2.6/subprocess.py", line 1139, in _execute_child
    raise child_exception
OSError: [Errno …
Run Code Online (Sandbox Code Playgroud)

python subprocess pipe python-2.6

88
推荐指数
3
解决办法
15万
查看次数

CreateProcess:没有这样的文件或目录

每当我尝试在其安装目录(E:\MinGW\bin)之外运行GCC时,我都会收到此错误.

所以,让我说我在,E:\code并有一个名为的文件one.c.跑步: gcc one.c -o one.exe会给我这个错误:

gcc: CreateProcess: No such file or directory
Run Code Online (Sandbox Code Playgroud)

唯一的解决方法是导航到其安​​装目录,从那里运行gcc,并指定所有其他路径.我的环境变量Path包含E:\MinGW\bin.

有什么建议来解决这个问题?我正在运行Windows XP SP3.

c gcc mingw

45
推荐指数
6
解决办法
13万
查看次数

标签 统计

c ×1

gcc ×1

mingw ×1

pipe ×1

python ×1

python-2.6 ×1

subprocess ×1