Как запустить другой файл python в коде
Перейти к содержимому

Как запустить другой файл python в коде

  • автор:

Как запустить из python внешний файл python

Каким образом можно вызвать выполнение другой программы python (из файла .py) во время выполнения текущей?

Отслеживать
49.3k 17 17 золотых знаков 57 57 серебряных знаков 101 101 бронзовый знак
задан 21 мая 2020 в 10:52
71 1 1 золотой знак 1 1 серебряный знак 2 2 бронзовых знака
import os os.open()
21 мая 2020 в 10:53
пишет open() missing required argument ‘flags’ (pos 2)
21 мая 2020 в 11:15
А добавить недостающий аргумент что мешает?
18 окт 2020 в 10:41

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

Можно еще вот так

 import os os.system('python путь_к_файлу.py') 

Отслеживать
ответ дан 20 авг 2020 в 23:46
5,810 2 2 золотых знака 11 11 серебряных знаков 39 39 бронзовых знаков

Наверное вам нужно это:

import os os.startfile(r'указывайте здесь путь к файлу') #пример os.startfile(r'C:\Program Files\Notepad++\notepad++.exe') 

Лучше вместе с меткой python 3.x указывайте метку python

Отслеживать
ответ дан 21 мая 2020 в 11:15
Ivan datlov Ivan datlov
110 8 8 бронзовых знаков

os.startfile(») или os.system(‘»Каталог1″\»Каталог2″\»Нужный файл»‘)

Но если вторая программа — тоже .py файл, то есть ограничения. Это будет работать, только если в системе установлена ассоциация: запускать .py файлы с помощью интерепретатора, а не открывать их в каком-нибудь текстовом редакторе.

Лучше будет, если ты скомпилируешь .py файл в .exe с помощью pyinstaller (у новичков могут возникнуть трудности при использовании) или cxfreeze (очень удобное управление, но проблемы с тем, чтобы найти этот инструмент и установить). и запустишь уже скомпилированный файл.

PS: компиляция приложений, использующих tkinter, полна нюансов (какие библиотеки положить с .exe — фалом, что установить, прописать и т.п.)

Как запустить файл со скриптом из другого файла со скриптом, запускающим первый файл?

Всем привет. Кто-нибудь знает способы запуска скрипта на python, который, к примеру, находится в файле file_1.py путем запуска другого файла file_2.py с кодом для запуска file_1.py. Для пояснения скажу, что в file_1.py находиться бесконечный цикл, который записывает данные в файл, поэтому простым импортом тут не обойтись, так как код в file_2.py должен интерпретироваться дальше после запуска file_1.py.

  • Вопрос задан более трёх лет назад
  • 2094 просмотра

Комментировать
Решения вопроса 1

Viktor_T2

python developer
subprocess же:

import subprocess cmd = 'python script.py' p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) out, err = p.communicate() result = out.split('\n') for lin in result: if not lin.startswith('#'): print(lin)

Ответ написан более трёх лет назад
Нравится 2 1 комментарий

samodurOFF

Данил Самодуров @samodurOFF Автор вопроса
Про subprocess много слышал, но работать не приходилось. Спасибо, попробую.
Ответы на вопрос 1

Привет! Как я понял тебе нужно инжектировать\импортировать код после выполнения первого скрипта. Import можно вызывать и в конце скрипт, и даже используя условия. Вот пример:

import_rand = False if import_rand: import random print(int(random.randrange(10))) elif not import_rand: print(int(random.randrange(10)))

Если True, то модуль random импортируется и выведется число, если False, то будет ошибка (Модуль random не найден).

Ответ написан более трёх лет назад
Нравится 1 3 комментария

samodurOFF

Данил Самодуров @samodurOFF Автор вопроса

Если честно, то я не понял как ваше решение подходит в моем случае. Поясню еще. Код в file_2.py использует данные из файла, который был создан через file_1.py. Этот файл, пусть он будет назваться data.csv, постоянно пополняется новыми данными, которые постоянно обрабатываются в file_2.py циклом. Поэтому, как мне кажется, код в file_2.py должен выглядеть примерно так:

import pandas as pd # ТРИГЕР для запуска кода в file_1.py, чтобы получить файл data.csv while True: df = pd.read_csv('data.csv') print(df.tail())

Так вот, мне и нужно понять, как реализовать этот ТРИГЕР

Данил Самодуров, Снова здравствуйте. Создайте в file_1 функцию, например gen_file потом импортируйте ее в file_2 при помощи from file_1 import gen_file. После этого вы можете вызывать когда вам нужно функцию внутри другого фала, также передавать ему атрибуты через эту функцию и получать ответ через return (если нужно). Если вы не знаете как работать с функциями, то вот простой пример —

def gen_file(const_one, const_two): print("<> <>".format(str(const_one), str(const_two)))

В другом файле нам нужно вызвать эту функцию, для этого мы пишем такой код —

from file_1 import gen_file a = "Это константа 1" b = "А это константа 2" gen_file(a, b)

Будет выведено в консоль —

Это константа 1 А это константа 2

samodurOFF

Данил Самодуров @samodurOFF Автор вопроса

koval01, я знаю как работать с функциями. file_1.py уже и так содержит функцию и я ее импортировал в file_2.py. Это первое что пришло мне в голову. Но, как вы поняли, это не сработало. Проблема в том, что функция в file_1.py сдержит бесконечный цикл и ничего не возвращается через return. При ее вызове через импорт в file_2.py код ниже места вызова исполняться не будет, так как интерпретатор будет ожидать завершение работы скрипта в file_1.py а этого не происходит.

Как сделать вызов функции из другого файла в python?

Чтобы сделать вызов функции из другого файла в python, ее необходимо сначала импортировать. Вы можете импортировать как весь файл(модуль), так и отдельно функции из него. Для импорта, каталог, в котором лежит файл, должен быть пакетом(package), то есть содержать в себе файл init.py .

Импорт модуля. В таком случае функции из модуля вызываются через точку:

from my_package import my_module # где my_package - пакет # my_module - искомый файл def main(): x = my_module.function() . 

Импорт конкретной функции из модуля:

from my_package.my_module import function def main(): x = function() . 

Как запустить файл, в другом файле?

Я код разделил на две части, что бы он был не такое большой. У меня есть два файла в которых находится разделенный код, можно ли через один запустить другой?
Или это как то иначе можно сделать ?
Вот содержимое файлов:
newe.py:

from flask import Flask #импортируем "Flask" из flask from flask import render_template import errors app = Flask(__name__)#хз @app.route("/")#Просматривать " def index(): return render_template("index.html") @app.route("/about") def about(): return 'Привет, ты в разделе "about"

Вернуться на главную страницу

' if __name__ == "__main__": app.run(host='0.0.0.0', port=4567)
from flask import Flask from flask import render_template app = Flask(__name__) @app.errorhandler(404) def not_found(error): return render_template("page_not_found.html"), 404
  • Вопрос задан более трёх лет назад
  • 961 просмотр

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *