在python中,以字符串形式获取系统命令的输出[重复]
Posted
技术标签:
【中文标题】在python中,以字符串形式获取系统命令的输出[重复]【英文标题】:in python, get the output of system command as a string [duplicate] 【发布时间】:2013-10-15 02:23:30 【问题描述】:在 python 中,我可以使用 os 或 subprocess 运行一些系统命令。问题是我无法将输出作为字符串。例如:
>>> tmp = os.system("ls")
file1 file2
>>> tmp
0
我有一个旧版本的子进程,它没有函数 check_out,我更喜欢不需要更新该模块的解决方案,因为我的代码将在我没有完全管理员权限的服务器上运行.
这个问题看似微不足道,但我找不到微不足道的解决方案
【问题讨论】:
你需要popen
PIPE,系统可能返回进程终止状态
@GrijeshChauhan 我也尝试过,但无法正常工作。你能举个例子吗?
@S4M 阅读:docs.python.org/2/library/subprocess.html#popen-constructor
【参考方案1】:
使用os.popen()
:
tmp = os.popen("ls").read()
更新的方法(> python 2.6)是使用subprocess
:
proc = subprocess.Popen('ls', stdout=subprocess.PIPE)
tmp = proc.stdout.read()
【讨论】:
一个使用子流程的例子会很有帮助:) 添加了一个带有子进程的示例 tmp = os.popen("ls").read() 很好。我有 python 2.6。 @HariShankar 谢谢..很好的答案! 为什么子流程可能更好?以上是关于在python中,以字符串形式获取系统命令的输出[重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 Python 运行 CMD 命令,打印输出并将输出作为变量获取