2013-03-14 89 views
3

在bash shell中,我可以使用'bash'或'source'來手動調用腳本。我可以在Python IDLE的交互式shell中做類似的事情嗎?我知道我可以去File >> Open Module,然後在另一個窗口中運行它,但這很麻煩。如何從IDLE命令行運行Python腳本?

回答

0

您只需從命令行運行Python腳本:

python <script.py> 
+5

我認爲提交者正在尋找一種方法在交互式shell內部執行,而不僅僅是命令行 – 2013-03-14 01:13:59

4

一種方法,我發現是execfile。它具有簽名execfile(<filename>,<globals>,<locals>)並在與當前IDLE會話相同的線程中運行該文件。 此方法是Python 2特定的

OP所要求的方法(在不同的線程/窗口中)將使用subprocess在不同的線程/窗口中運行。

 
import subprocess 

#any of these will run the file. Pick the one that best suits you. 

subprocess.call(['python','filename.py']) 
subprocess.check_call(['python','filename.py']) 
subprocess.Popen(['python','filename.py']) 

這些基本上是做nneonneo的回答做了什麼,但使用subprocess在不同的線程來執行它。

+0

execfile()僅適用於Python 2.x.它已在Python 3中被刪除:http://python3porting.com/differences.html,其中可以使用'exec(open(thefile).read())',它將輸出返回到IDLE交互式shell,但是我還沒有想出一種方法來傳遞命令行參數。子進程將工作,但它不會返回輸出,並且需要更多的麻煩來獲得它(儘管可能是可行的)。這與「。」相比毫無意義。運算符在bash中執行腳本。太糟糕了。 – 2013-03-14 01:35:43

+0

@HaiXinTie謝謝你的注意。我已經更新了答案以反映這一事實。 – 2013-03-14 01:37:32