如何将系统调用输出重定向到字符串

时间:2012-07-03 06:51:30

标签: python unix system-calls

  

可能重复:
  Pipe subprocess standard output to a variable

我正在运行python程序:

import os
os.system("ls") # ls command runs on the terminal 

将输出存储在文件中:

os.system("ls > a.txt")

我需要的是,它将输出存储在一些临时字符串中。是否可能??

1 个答案:

答案 0 :(得分:5)

import subprocess
output = subprocess.Popen(["ls"], stdout = subprocess.PIPE, stderr = subprocess.STDOUT).communicate()[0]

在此运行外部命令ls,并将命令的stderrstdout遍布重定向到变量output

使用stdout函数的stderrPopen参数指定必须重定向流的位置。