2012-07-03 37 views
0

可能重複:
Pipe subprocess standard output to a variable如何系統調用輸出重定向到一個字符串

我運行一個python程序:

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

要輸出存儲在一個file:

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

我需要的是它將輸出存儲在一些臨時字符串中。那可能嗎 ??

+0

不,你不能那樣做。系統調用後,將a.txt的內容讀入變量。更好的是使用python管道。 – SidJ

+3

@SridharJagannathan你錯了。當然,你可以使用python的子進程模塊來做到這一點。 – sloth

+0

@BigYellowCactus我沒有提到管道。 – SidJ

回答

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

這裏運行外部命令ls並重定向兩個命令的stderrstdout strewams給變量output

必須使用Popen函數的參數stdoutstderr指定流必須重定向的位置。

相關問題