2013-11-26 25 views
0

我正在嘗試這樣的事情,但我不知道爲什麼它不工作。使用python將cmp輸出導向到一個文件

for files in os.listdir("."): 
    if files.endswith(".o"): 
     str = "cmp "+ str1+" "+str2 +" > s.txt " 
     subprocess.Popen(str, shell=True) 

如果我沒有te.txt,我得到的輸出,但是當我嘗試直接輸出到文件中,則不會創建該文件。有人能告訴我這裏有什麼問題嗎?

+0

'cmp'帶兩個參數並比較它們。通常,如果只有一個輸入特定爲命令行參數,則它將從stdin而不是第二個文件讀取。您只指定一個文件,而不寫入孩子的標準輸入。 – SuperSaiyan

+0

抱歉,我的壞..錯誤,而複製..糾正它 –

+0

請編輯您的問題。就目前而言,我們幾乎無法讓**有任何意義。什麼'te.txt'?什麼'str1'? Whats'str2'?你期望的輸出是什麼?執行時會發生什麼?問題是什麼? – SuperSaiyan

回答

1

試試這個

import os 

for files in os.listdir("."): 
    if files.endswith(".o"): 
     str = "cmp "+ str1+" "+str2 +" > s.txt " 
     os.system(str) 

如果你使用subprocess你需要把所有的參數,例如單詞 的名單:

import subprocess 
subprocess.Popen(["ls", "-la"]) 

而最後那句話,你不需要把輸出從... > file.txt,你可以使用subprocess。例如

subprocess.Popen(["ls", "-la"], stdout=anyfile) 
相關問題