Python命令执行输出

2 投票
3 回答
4316 浏览
提问于 2025-04-16 21:47

可能重复的问题:
从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()

撰写回答