2013-01-22 109 views
6

可能重複:
Calling an external command in Python如何通過蟒蛇運行shell命令

我想運行使用python在另一個目錄的命令。

這種方法有哪些不同的使用方法,哪種方法效率最高?

我想要做的就是如下,

cd dir1 
execute some commands 
return 
cd dir2 
execute some commands 
+1

請參閱http://stackoverflow.com/questions/89228/calling-an-external-command-在python中廣泛討論了這個話題。 –

+0

你嘗試過什麼嗎?做任何研究? – Mike

回答

1
os.system("/dir/to/executeble/COMMAND") 

例如

os.system("/usr/bin/ping www.google.com") 

如果ping程序位於 「在/ usr/bin中」

當然你需要導入os模塊。

使用os.system不等待任何輸出,如果你想輸出,你應該如果你想在所謂的shell命令更多的控制權(即接入使用

subprocess.call或類似的

+0

有人告訴我,我們有subprocess.call,os.system ...哪一個是有用的? – mrutyunjay

+0

取決於你需要什麼。如果您想在後面的shell中啓動某些內容,請使用os.system。使用subprocess.call或類似的東西,如果你想等待進程的結果.. subprocess.Popen,作品非常類似於在C中的popen – Gjordis

1

東西到標準輸入和/或標準輸出管道或異步啓動它),你可以使用subprocess模塊:

import subprocess 

p = subprocess.Popen('ls -al', shell=True, stdout=subprocess.PIPE) 
stdout, stderr = p.communicate() 

subprocess module documentation見。