2012-01-25 67 views
5

我正在編寫一個腳本來清理我的桌面,根據文件類型移動文件。第一步,似乎是ls -1 /Users/user/Desktop(我在Mac OSX上)。因此,使用Python,我將如何運行命令,然後將輸出寫入特定目錄中的文件?由於這將是無證的,我將是唯一的用戶,如果它使用os.system(),我不介意(更喜歡?)。寫命令行輸出到文件

+0

你想移動哪些文件?使用Python查看http://docs.python.org/library/shutil.html文件操作。 – 2012-01-25 13:32:02

+0

外殼腳本已足夠 –

+1

如果您使用外殼腳本,請閱讀有關管道和重定向的更多信息。 –

回答

13

您可以使用命令中的>將標準輸出重定向到任何文件。

$ ls /Users/user/Desktop > out.txt 

使用Python,

os.system('ls /Users/user/Desktop > out.txt') 

但是,如果你正在使用python然後而是採用ls命令,你可以用os.listdir列出目錄中的所有文件。

path = '/Users/user/Desktop' 
files = os.listdir(path) 
print files 
+0

不錯的一個。謝謝。 – Daniel

+0

ImportError:沒有名爲system的模塊。 –

+0

@ Suda.nese如何嘗試導入?你的Python版本是什麼? – taskinoor

4

略讀Python文檔運行外殼命令,並且獲得可以使用subprocess模塊與check_output方法在該輸出之後。

之後,您可以簡單地將該輸出寫入具有標準Python IO函數的文件:File IO in python

1

要打開文件,可以使用f = open(/Path/To/File)命令。語法是f = open('/Path/To/File', 'type'),其中'type'是讀取的r,w是寫入的,而a是附加的。執行此操作的命令是f.read()f.write('content_to_write')。要從命令行命令獲得輸出,您必須使用popen和subprocess而不是os.system()。 os.system()不返回值。你可以閱讀更多關於popen here