2013-03-14 4 views
3

В оболочке bash я могу использовать 'bash' или 'source' для вызова скрипта вручную. Могу ли я сделать подобное в интерактивной оболочке Python IDLE? Я знаю, что могу перейти в File >> Open Module, а затем запустить его в отдельном окне, но это хлопотно.Как запустить скрипт Python из командной строки IDLE?

ответ

0

Вы можете просто запустить скрипт Python из командной строки:

python <script.py> 
+5

Я думаю, что искатель ищет способ сделать это внутри интерактивной оболочки, а не только командной строки –

4

Один метод, который я нашел это execfile. Он имеет подпись execfile(<filename>,<globals>,<locals>) и запускает файл в том же потоке, что и текущий сеанс IDLE. Этот метод Python 2 конкретных

Метод ОП просит (в другом потоке/окна) будет использовать 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 «s, но с использованием subprocess, чтобы выполнить его в другом потоке.

+0

execfile() работает только в Python 2.x. Он был удален в Python 3: http://python3porting.com/differences.html, где можно использовать 'exec (open (thefile) .read())', который возвращает результат обратно в интерактивную оболочку IDLE, но я не выяснили способ передачи аргументов командной строки. подпроцесс будет работать, но он не возвращает результаты, и требует больше проблем, чтобы получить его (хотя, вероятно, сделать это). Это ничто по сравнению с "." оператор в bash для выполнения скрипта. Очень жаль. –

+0

@HaiXinTie Спасибо, что заметили это. Я обновил ответ, чтобы отразить этот факт. –

Смежные вопросы