Python запуск другого python файла

Как я могу заставить один файл python запускать другой? [Дубликат]

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

8 ответов

Существует несколько способов. Я перечислил их в порядке инвертированного предпочтения (то есть, во-первых, лучше всего в последнем):

  • Рассматривайте его как модуль: import file . Это хорошо, потому что оно безопасно, быстро и обслуживается. Код используется повторно, поскольку это должно быть сделано. Большинство библиотек Python запускаются с использованием нескольких методов, растянутых по множеству файлов. Настоятельно рекомендуется. Обратите внимание, что если ваш файл называется file.py , ваш import не должен включать расширение .py в конце.
  • Беспокойная (и небезопасная) команда exec: execfile(‘file.py’) . Небезопасный, хакерский, обычно неправильный ответ. Избегайте, где это возможно.
  • Вызвать процесс оболочки: os.system(‘python file.py’) . Используйте при отчаянии.

просто добавим немного подробностей к случаю № 1 : скажем, вы хотите импортировать fileB.py в fileA.py. при условии, что файлы находятся в одном каталоге, внутри файла A вы бы import fileB затем, внутри файла A, вы можете вызывать любую функцию внутри файла B следующим образом: fileB.name_of_your_func() . конечно, есть больше вариантов и деталей, но это поможет вам начать работу.

Использование импорта добавляет пространство имен к функциям, например, function () становится filename.function (). Чтобы избежать этого, используйте «from name import *». Это также запустит тело кода. Запуск с os.system () не сохранит определенную функцию (как она была запущена в другом процессе). execfile — это exec () в Python 3, и он не работает.

Читайте также:  Подтверждение нажатия кнопки html

Источник

Python запускает другой скрипт Python

Python запускает другой скрипт Python

  1. Используйте оператор import для запуска сценария Python в другом сценарии Python
  2. Используйте метод execfile() для запуска скрипта Python в другом скрипте Python
  3. Используйте модуль subprocess для запуска скрипта Python в другом скрипте Python

Базовый текстовый файл, содержащий код Python, который предназначен для непосредственного выполнения клиентом, обычно называется сценарием, формально известным как программный файл верхнего уровня.

Скрипты предназначены для непосредственного выполнения на Python. Научиться запускать сценарии и код — это фундаментальный навык в мире программирования на Python. Скрипт Python обычно имеет расширение ‘.py’ . Если сценарий запускается на машине с Windows, он может иметь расширение .pyw .

В этом руководстве будут рассмотрены различные методы запуска сценария Python внутри другого сценария Python.

Используйте оператор import для запуска сценария Python в другом сценарии Python

Оператор import используется для импорта нескольких модулей в код Python. Он используется для получения доступа к определенному коду из модуля. Этот метод использует оператор import для импорта скрипта в код Python и использует его как модуль. Модули можно определить как файл, содержащий определения и инструкции Python.

В следующем коде оператор import используется для запуска сценария Python в другом сценарии Python.

def func1():  print ("Function 1 is active")  if __name__ == '__main__':  # Script2.py executed as script  # do something  func1() 
import Script1.py  def func2():  print("Function 2 is active")  if __name__ == '__main__':  # Script2.py executed as script  # do something  func2()  Script1.func1() 
Function 2 is active Function 1 is active 

Используйте метод execfile() для запуска скрипта Python в другом скрипте Python

Функция execfile() выполняет в интерпретаторе нужный файл. Эта функция работает только в Python 2. В Python 3 функция execfile() была удалена, но то же самое можно сделать в Python 3 с помощью метода exec() .

# Python 2 code execfile("Script1.py") 

Используйте модуль subprocess для запуска скрипта Python в другом скрипте Python

Модуль subprocess может порождать новые процессы, а также может возвращать их выходные данные. Это новый модуль, предназначенный для замены нескольких старых модулей, таких как os.system , которые ранее использовались для запуска сценария Python в другом сценарии Python.

def func1():  print ("Function 1 is active")  if __name__ == '__main__':  # Script2.py executed as script  # do something  func1() 
import subprocess  subprocess.call("Script1.py", shell=True) 

Хотя все три метода работают нормально, этот метод имеет преимущество перед двумя другими методами. В этом методе не требуется редактировать существующий сценарий Python и помещать весь содержащийся в нем код в подпрограмму.

Читайте также:  Html как изменить цвет фона

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.

Источник

Как при открытии одного python файла, с ним открывался другой python файл?

Я создаю телеграм бота, который должен мне помогать с учёбой (но это не важно). Я сделал отдельную программу («открывалка») которая должна открывать ссылку, тем самым заходить к боту (она работает):

import webbrowser as w w.open("https://t.me/BindorBot")

Я хочу чтобы в «открывалке» был код, который не только открывает, заходит по ссылке к боту, но и запускает бота (код бота в отдельном файле). Я всё перепробовал не поучается, помогите пожалуйста 🙁 .

Простой 1 комментарий

AlexNest

Ну и где примеры того, как пробовали?
Далее, подсказка — даже в приведенном вами куске кода есть инструмент для реализации необходимого вам функционала.
Если вы не понимаете о чем речь то, вероятно, писать ботов еще рановато и стоит изучить основы языка.

@echo off explorer https://t.me/BindorBot python bot.py pause
@echo off start cmd cd C:\Users\user\Desktop (ЗДЕСЬ ПУТЬ ДО ПАПКИ ГДЕ БОТ)

После создания двух файлов, запускайте server.bat, тем самым сначала у вас откроется ваша ссылка в браузере, а потом сразу же запустится скрипт (бот)

А после создания bat файлов можно из всей папки (с кодом бота и с двумя bat’ными файлами) сделать одно приложение? И если да то как?

не работает, а точнее server.bat работает, но console.bat нет, всё перепробовал, rlxrdv можете ответить примером)

Источник

Как запустить скрипт питон из другого скрипта питон?

Как сделать так, что бы из одного скрипта питон запускался другой, с параметрами(a=1 например) и первый скрипт продолжался а после выполнения второй закрывался
нигде не могу найти как это сделать?
Python 3.7

Читайте также:  Python find all indexes in string

deepblack

Импортируете модуль subprocess

import subprocess subprocess.Popen(['python3', 'script.py', 'argzzz1', 'argzzz2'])

UPD:
Путь к интерпретатору Python3

import sys >>> sys.executable '/usr/bin/python3'

Traceback (most recent call last):
File «tesst.py», line 4, in
subprocess.Popen([‘python3»config.py’],a,b)
File «/usr/local/lib/python3.7/subprocess.py», line 756, in __init__
restore_signals, start_new_session)
File «/usr/local/lib/python3.7/subprocess.py», line 1413, in _execute_child
executable = os.fsencode(executable)
File «/usr/local/lib/python3.7/os.py», line 809, in fsencode
filename = fspath(filename) # Does type-checking of `filename`.
TypeError: expected str, bytes or os.PathLike object, not int
такая ошибка

deepblack

Traceback (most recent call last):
File «tesst.py», line 5, in
subprocess.Popen([‘/usr/local/bin/python3.7′,’config.py’],a,b)
File «/usr/local/lib/python3.7/subprocess.py», line 756, in __init__
restore_signals, start_new_session)
File «/usr/local/lib/python3.7/subprocess.py», line 1413, in _execute_child
executable = os.fsencode(executable)
File «/usr/local/lib/python3.7/os.py», line 809, in fsencode
filename = fspath(filename) # Does type-checking of `filename`.
TypeError: expected str, bytes or os.PathLike object, not int

deepblack

Только что в консоли проверил

[GCC 8.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import subprocess >>> >>> subprocess.Popen(['python3', 'script.py', 'argzzz1', 'argzzz2']) >>> ['script.py', 'argzzz1', 'argzzz2']

Источник

Оцените статью