我们在终端中键入的终端命令可能会在终端上打印一些输出。当我们在python脚本中使用此命令并调用系统调用时说:
os.system('ls')
我们确实获得了输出,但不知何故它返回一个整数来表示该过程的成功执行:
>>> x = os.system('ls') #prints some output
>>> x
>>> 0
我需要一个函数将x中的输出存储为我需要解析的字符串。执行此操作的python函数是什么?
答案 0 :(得分:1)
您将使用子流程模块。
from subprocess import PIPE, Popen
proc = Popen(["ls"], stdout=PIPE)
stdout, stderr = proc.communicate()
或者,如果您使用的是Python 3.5或更高版本,则建议运行。
import subprocess
completed = subprocess.run(["ls", "-l"], stdout=subprocess.PIPE, encoding="utf-8")
#output is stored in completed.stdout