Python - как я могу назвать внешние программы Python? - PullRequest
19 голосов
/ 17 февраля 2012

Я предвосхищу это, говоря, что это домашнее задание.Я не хочу, чтобы код был написан для меня, просто чтобы он указывал в правильном направлении.

Мы можем работать над проектом по нашему выбору, поэтому я работаю надпрограмма, которая будет мини-портфолио всего, что я написал до сих пор.Поэтому я собираюсь создать программу, в которой пользователь будет вводить имя программы (выбранной из заданного списка), а затем запускать выбранную программу в существующей оболочке.

Однако я не могу на самом деленайти информацию о том, как вызывать внешние программы.Может кто-то указать мне верное направление?Я подумал о том, чтобы поместить весь код в одну длинную программу с кучей циклов if, чтобы выполнить правильный код, но я хотел бы сделать его BIT более сложным, чем это.

Ответы [ 3 ]

30 голосов
/ 17 февраля 2012

Если вы хотите вызывать каждый из них как скрипт Python, вы можете сделать

import subprocess
subprocess.call(["python", "myscript.py"])
subprocess.call(["python", "myscript2.py"])

Но лучший способ - вызвать функции, написанные вами в других скриптах, например:

import myscript
import myscript2

myscript.function_from_script1()
myscript2.function_from_script2()

Где function_from_script1() и т. Д. Определены в файлах myscript.py и myscript2.py.См. Эту страницу на модулей для получения дополнительной информации.

3 голосов
/ 17 февраля 2012

Ознакомьтесь с документацией subprocess.

1 голос
/ 11 июля 2018

Также, если вам нужно передать дополнительные аргументы, сделайте это:

import subprocess
subprocess.call(["python", "myscript.py", "arg1", "arg2", "argN"])
...