Как я могу сделать один файл python для запуска другого?
Например, у меня есть два файла .py. Я хочу, чтобы один файл запускался, а затем запустил другой .py файл.
Как я могу сделать один файл python для запуска другого?
Например, у меня есть два файла .py. Я хочу, чтобы один файл запускался, а затем запустил другой .py файл.
Существует несколько способов. Я перечислил их в порядке инвертированного предпочтения (то есть, во-первых, лучше всего в последнем):
import file
. Это хорошо, потому что оно безопасно, быстро и обслуживается. Код используется повторно, поскольку это должно быть сделано. Большинство библиотек Python запускаются с использованием нескольких методов, растянутых по множеству файлов. Настоятельно рекомендуется. Обратите внимание, что если ваш файл называется file.py
, ваш import
не должен включать расширение .py
в конце.execfile('file.py')
. Небезопасный, хакерский, обычно неправильный ответ. Избегайте, где это возможно.os.system('python file.py')
. Используйте при отчаянии.Поместите это в main.py:
#!/usr/bin/python
import yoursubfile
Поместите это в свой файл yoursubfile.py
#!/usr/bin/python
print "hello";
Запустите его:
python main.py
Он печатает:
hello
Таким образом, main.py
запускает yoursubfile.py
Есть 8 способов ответить на этот вопрос. Более канонический ответ здесь: Python: как импортировать другие файлы Python
import os
os.system('python filename.py')
Примечание: поместите файл в тот же каталог вашего основного файла python.
Вы обрабатываете один из файлов в качестве модуля python и заставляете его импортировать его (как вы импортируете стандартные модули python). Затем последний может ссылаться на объекты (включая классы и функции), определенные в импортированном модуле. Модуль также может запускать любой требуемый код инициализации. См. http://docs.python.org/tutorial/modules.html
Я использовал subprocess.call почти так же, как subprocess.Popen
from subprocess import call
call(["python", "your_file.py"])
Вы можете использовать этот script:
def run(runfile):
with open(runfile,"r") as rnf:
exec(rnf.read())
Синтаксис:
run("file.py")
from subprocess import Popen
Popen('python filename.py')
Его можно назвать aa1.py из основного script, как показано ниже,
#!/usr/bin/python
import aa1
aa1
aa1.py может быть что-то ниже,
print'abc'