Как я могу заставить один файл python запускать другой? [Дубликат]
Как я могу сделать один файл python для запуска другого?
Например, у меня есть два файла .py. Я хочу, чтобы один файл запускался, а затем запустил другой .py файл.
8 ответов
Существует несколько способов. Я перечислил их в порядке инвертированного предпочтения (то есть, во-первых, лучше всего в последнем):
- Рассматривайте его как модуль: import file . Это хорошо, потому что оно безопасно, быстро и обслуживается. Код используется повторно, поскольку это должно быть сделано. Большинство библиотек Python запускаются с использованием нескольких методов, растянутых по множеству файлов. Настоятельно рекомендуется. Обратите внимание, что если ваш файл называется file.py , ваш import не должен включать расширение .py в конце.
- Беспокойная (и небезопасная) команда exec: execfile(‘file.py’) . Небезопасный, хакерский, обычно неправильный ответ. Избегайте, где это возможно.
- Вызвать процесс оболочки: os.system(‘python file.py’) . Используйте при отчаянии.
Получить один файл python для запуска другого, используя python 2.7.3 и Ubuntu 12.10:
Поместите это в main.py:
Поместите это в свой файл yoursubfile.py
Таким образом, main.py запускает yoursubfile.py
Есть 8 способов ответить на этот вопрос. Более канонический ответ здесь: Python: как импортировать другие файлы Python
- вы можете запустить ваш .py файл просто с помощью этого кода:
Примечание: поместите файл в тот же каталог вашего основного файла python.
Python запускает другой скрипт Python

Базовый текстовый файл, содержащий код Python, который предназначен для непосредственного выполнения клиентом, обычно называется сценарием, формально известным как программный файл верхнего уровня.
Please enable JavaScript
Скрипты предназначены для непосредственного выполнения на Python. Научиться запускать сценарии и код — это фундаментальный навык в мире программирования на Python. Скрипт Python обычно имеет расширение ‘.py’ . Если сценарий запускается на машине с Windows, он может иметь расширение .pyw .
В этом руководстве будут рассмотрены различные методы запуска сценария Python внутри другого сценария Python.
Используйте оператор import для запуска сценария Python в другом сценарии Python
Оператор import используется для импорта нескольких модулей в код Python. Он используется для получения доступа к определенному коду из модуля. Этот метод использует оператор import для импорта скрипта в код Python и использует его как модуль. Модули можно определить как файл, содержащий определения и инструкции Python.
В следующем коде оператор import используется для запуска сценария Python в другом сценарии Python.
- Script1.py :
- Script2.py :
Используйте метод execfile() для запуска скрипта Python в другом скрипте Python
Функция execfile() выполняет в интерпретаторе нужный файл. Эта функция работает только в Python 2. В Python 3 функция execfile() была удалена, но то же самое можно сделать в Python 3 с помощью метода exec() .
- Script2.py :
- Script2.py :
Используйте модуль subprocess для запуска скрипта Python в другом скрипте Python
Модуль subprocess может порождать новые процессы, а также может возвращать их выходные данные. Это новый модуль, предназначенный для замены нескольких старых модулей, таких как os.system , которые ранее использовались для запуска сценария Python в другом сценарии Python.
- Script1.py :
- Script2.py :
Хотя все три метода работают нормально, этот метод имеет преимущество перед двумя другими методами. В этом методе не требуется редактировать существующий сценарий Python и помещать весь содержащийся в нем код в подпрограмму.
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
How can I make one python file run another? [duplicate]
For example I have two .py files. I want one file to be run, and then have it run the other .py file.
![]()
![]()
8 Answers 8
There are more than a few ways. I’ll list them in order of inverted preference (i.e., best first, worst last):
- Treat it like a module: import file . This is good because it’s secure, fast, and maintainable. Code gets reused as it’s supposed to be done. Most Python libraries run using multiple methods stretched over lots of files. Highly recommended. Note that if your file is called file.py , your import should not include the .py extension at the end.
- The infamous (and unsafe) exec command: Insecure, hacky, usually the wrong answer. Avoid where possible.
- execfile(‘file.py’) in Python 2
- exec(open(‘file.py’).read()) in Python 3
- Spawn a shell process: os.system(‘python file.py’) . Use when desperate.
Get one python file to run another, using python 2.7.3 and Ubuntu 12.10:
Put this in main.py:
Put this in yoursubfile.py
Thus main.py runs yoursubfile.py
There are 8 ways to answer this question, A more canonical answer is here: How to import other Python files?
Как мне вызвать один файл Python из другого файла Python?
Поэтому у меня есть несколько файлов Python, каждый из которых представляет собой свое собственное консольное приложение, предоставляющее пользователю несколько вариантов. file1.py, file2.py, file3.py и т. д.
У меня есть другой файл с именем menu.py. В этом файле я хочу предложить пользователю возможность запустить один из других файлов python, т.е.
Мой код будет намного чище, но, надеюсь, вы понимаете, к чему я стремлюсь.
4 ответа
Я полагаю, что вы ищете os.system()
Вы можете запустить команду
Добавляем к ответу Джоша.
Для наиболее чистого решения вы должны использовать операторы import для извлечения кода из другого файла. Способ достижения этого заключается в том, чтобы каждый файл имел основную функцию, которая будет служить интерфейсом. Кроме того, я также рекомендую использовать argparse, если файлы являются программами командной строки.
Если за один раз вызывается только один файл, программа может выглядеть примерно так:
file1.py может выглядеть так:
И вы называете это так: python3 menu.py —file file1 —options option1 option2
Этот ответ приписывается @balpha и @fantastory.
Если вы используете Python 2, используйте
Если вы используете Python 3, используйте
Вы также можете посмотреть документы о том, как обрабатываются пространства имен.