Python命令执行输出
可能重复的问题:
从Python运行命令并获取输出
我想把一个命令的输出结果保存到一个变量里,这样我之后就可以再次使用这个变量。我需要修改这个脚本来实现这个功能:
#!/usr/bin/python
import os
command = raw_input("Enter command: ")
os.system(command)
当我运行这个脚本并输入“ls”时,我得到的输出是:
Documents Downloads Music Pictures Public Templates Videos
我想把这个字符串(ls命令的输出)保存到一个变量里,这样我以后可以再用它。我该怎么做呢?
3 个回答
0
这是我过去的做法。
>>> import popen2
__main__:1: DeprecationWarning: The popen2 module is deprecated. Use the subprocess module.
>>> exec_cmd = popen2.popen4("echo shell test")
>>> output = exec_cmd[0].read()
>>> output
'shell test\n'
2
这个命令的输出可以通过 subprocess
模块来获取,特别是使用 check_output
这个函数。
output = subprocess.check_output("ls")
另外,你可以查看 subprocess.Popen
的文档,了解 check_output
函数需要的参数列表。
9
在编程中,有时候我们会遇到一些问题,像是代码运行不正常或者出现错误。这些问题可能是因为我们在写代码的时候,某些地方没有注意到,或者是对某些概念理解得不够透彻。
比如说,有些人可能会在使用某个功能时,不太清楚它的具体用法,或者在调用某个函数时,传入了错误的参数。这就像是你在做菜时,如果没有按照食谱来,可能就会做出不太好吃的菜。
所以,遇到问题的时候,首先要冷静下来,仔细检查自己的代码,看看是不是哪里写错了,或者是不是理解错了某个功能的用法。这样才能找到解决问题的方法。
import subprocess
command = raw_input("Enter command: ")
p = subprocess.Popen(command, stdout=subprocess.PIPE)
output, error = p.communicate()