【发布时间】:2012-07-26 12:46:31
【问题描述】:
我在没有受过教育的情况下学习系统管理,所以有时我会错过对许多其他人来说是基本信息的东西。
我试图在打印之前给我的 stdout 行另一个参数,但我不确定我应该使用哪个进程,如果我应该使用子进程的命令,我有点模糊。
我当前的代码是:
f = open('filelist', 'r')
searchterm = f.readline()
f.close()|
#takes line from a separate file and gives it definition so that it may be callable.
import commands
commands.getoutput('print man searchterm')
这正在运行,但没有给我输出到 shell。不过,我更重要的问题是,我是否使用正确的命令来获得我喜欢的过程?我应该改用其中一个子进程命令吗?我试过玩 popen,但我对它的理解不够充分,无法正确使用它。
也就是说,我在跑步
subprocess.Popen('print man searchterm')
但毫无疑问,我知道这不是你应该运行它的方式。 Popen 需要的参数比我给出的要多,比如文件位置和运行位置(Stdout 或 stderr)。但是我在使这些命令起作用时遇到了麻烦。会不会是这样的:
subprocess.Popen(pipe=stdout 'man' 'searchterm')
#am unsure how to give the program my arguments here.
我一直在到处研究,但这是一个如此广泛使用的过程,我似乎正在遭受信息过剩而不是信息不足的困扰。任何帮助将不胜感激,我很新。
感谢您的任何帮助。
【问题讨论】:
-
commands模块已弃用,取而代之的是subprocess(它甚至在 python3.x 中都不存在)。所以,你可能应该使用subprocess -
此tutorial 提供了使用
subprocess的大量示例。
标签: python subprocess popen