Как я могу сделать один файл python другим?
Как я могу сделать один файл python для запуска другого?
Например, у меня есть два файла .py. Я хочу, чтобы один файл запускался, а затем запустил другой .py файл.
Ответы
Ответ 1
Существует несколько способов. Я перечислил их в порядке инвертированного предпочтения (то есть, во-первых, лучше всего в последнем):
- Рассматривайте его как модуль:
import file
. Это хорошо, потому что оно безопасно, быстро и обслуживается. Код используется повторно, поскольку это должно быть сделано. Большинство библиотек Python запускаются с использованием нескольких методов, растянутых по множеству файлов. Настоятельно рекомендуется. Обратите внимание, что если ваш файл называется file.py
, ваш import
не должен включать расширение .py
в конце.
- Беспокойная (и небезопасная) команда exec:
execfile('file.py')
. Небезопасный, хакерский, обычно неправильный ответ. Избегайте, где это возможно.
- Вызвать процесс оболочки:
os.system('python file.py')
. Используйте при отчаянии.
Ответ 2
Получить один файл python для запуска другого, используя python 2.7.3 и Ubuntu 12.10:
-
Поместите это в 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
Ответ 3
- вы можете запустить ваш .py файл просто с помощью этого кода:
import os
os.system('python filename.py')
Примечание: поместите файл в тот же каталог вашего основного файла python.
Ответ 4
Вы обрабатываете один из файлов в качестве модуля python и заставляете его импортировать его (как вы импортируете стандартные модули python). Затем последний может ссылаться на объекты (включая классы и функции), определенные в импортированном модуле. Модуль также может запускать любой требуемый код инициализации. См. http://docs.python.org/tutorial/modules.html
Ответ 5
Я использовал subprocess.call почти так же, как subprocess.Popen
from subprocess import call
call(["python", "your_file.py"])
Ответ 6
Вы можете использовать этот script:
def run(runfile):
with open(runfile,"r") as rnf:
exec(rnf.read())
Синтаксис:
run("file.py")
Ответ 7
from subprocess import Popen
Popen('python filename.py')
или how-can-i-make-one-python-file-run-another-file
Ответ 8
Его можно назвать aa1.py из основного script, как показано ниже,
#!/usr/bin/python
import aa1
aa1
aa1.py может быть что-то ниже,
print'abc'