当前位置: 首页 > 面试题库 >

Popen和Python

楚天宇
2023-03-14
问题内容

使用某些代码,从命令提示符运行它时出现错误提示…

NameError: name 'Popen' is not defined

但我同时导入import osimport sys

这是代码的一部分

exepath = os.path.join(EXE File location is here)
exepath = '"' + os.path.normpath(exepath) + '"'
cmd = [exepath, '-el', str(el), '-n', str(z)]

print 'The python program is running this command:'
print cmd

process = Popen(cmd, stderr=STDOUT, stdout=PIPE)
outputstring = process.communicate()[0]

我缺少基本的东西吗?我不会怀疑。谢谢!


问题答案:

你应该做:

import subprocess
subprocess.Popen(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
# etc.


 类似资料:
  • popen(建立管道I/O) 相关函数 pipe,mkfifo,pclose,fork,system,fopen 表头文件 #include<stdio.h> 定义函数 FILE * popen( const char * command,const char * type); 函数说明 popen()会调用fork()产生子进程,然后从子进程中调用/bin/sh -c 来执行参数command的

  • popen 建立管道I/O 相关函数 pipe,mkfifo,pclose,fork,system,fopen 表头文件 #include<stdio.h> 定义函数 FILE *popen(const char *command, const char *type); 函数说明 popen()会调用fork()产生子进程,然后从子进程中调用/bin/sh -c来执行参数command的指令。

  • 问题内容: 我想通过python从目录中调用脚本(它们是可执行的shell脚本)。 到现在为止还挺好: 现在我想要的是:假设我有一个具有启动功能的bash脚本。我从那里打电话 回声“某事” 现在,我想看看sys.stdout和退出代码上的回显。我相信您可以使用.communicate()执行此操作,但是我的操作不符合我的预期。 我究竟做错了什么? 任何帮助深表感谢 问题答案: 授予http://d

  • 我正在学习,但我对这段代码有点困惑: 输出: 如您所见,输出是格式化的。但是我不知道为什么结尾有字符和。 如果我在终端中运行此命令,则没有这些字符。 正常输出: 我怎样才能移除它们?

  • 问题内容: 我对使用时如何搜索可执行文件感到困惑。如果给子进程提供了绝对路径,那么它就可以工作,但是我正在尝试使用相对路径。我发现,如果设置环境变量PYTHONPATH,则可以从该路径中获取导入的模块,并且PYTHONPATH在其中,但似乎对的行为没有帮助。我也尝试编辑将PYTHONPATH添加到的文件,就像这样 并验证了在以交互方式,与ipython或通过从命令行运行脚本启动python时,PY

  • 问题内容: 我需要使用自己的专用TTY在Python的单独进程中运行交互式Bash实例(我不能使用pexpect)。我使用了类似程序中常见的代码片段: 但是当我运行它时,我得到以下输出: 运行的轨迹显示一些错误: 该代码段看起来非常简单,Bash是否没有得到所需的东西?这可能是什么问题? 问题答案: 这是最后对我有用的解决方案(由qarma建议):