2013-03-14 59 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