2010-10-07 2 views
2

Я хотел бы вызвать .py-файл из python. Он находится в том же каталоге. Эффективно, мне хотелось бы, чтобы такое же поведение, как вызов python foo.py из командной строки, без использования каких-либо инструментов командной строки. Как мне это сделать?Вызов файла в python

ответ

4

Это не совсем понятно (по крайней мере для меня), что вы имеете в виду не используя "ни один из инструментов командной строки".

Для запуска программы в подпроцессе обычно используется модуль subprocess. Однако, если оба вызова и вызываемого являются скриптами python, существует еще одна альтернатива, которая заключается в использовании модуля multiprocessing.

Например, вы можете организовать foo.py так:

def main(): 
    ... 

if __name__=='__main__': 
    main() 

Затем в вызывающем сценария, test.py:

import multiprocessing as mp 
import foo 
proc=mp.Process(target=foo.main) 
proc.start() 
# Do stuff while foo.main is running 
# Wait until foo.main has ended 
proc.join()  
# Continue doing more stuff 
+0

+1: Похоже, массовое убийство, но мне нравится это в любом случае. :) – jathanism

+0

@jathanism: Это вполне возможно :) Хотя мне нравятся функции вызова (которые mp.Process позволяет) гораздо больше, чем вызов скриптов python (через подпроцесс), которые затем должны быть optparsed/argparsed. – unutbu

+0

Я не согласен с вами. Я только сейчас перехожу к многопроцессорной обработке, и я рад видеть такое основное использование этого. – jathanism

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