Как открыть приложение через питон
Для запуска любой внешней команды или программы под python используется os.system(«path/to/program»)
import os os.system('/usr/bin/firefox')
Выше приведенный пример здорово работает если только в пути нету пробелов (например, ‘Mozilla Firefox’).
Для того, что бы командная оболочка правильно трактовала имена с пробелами необходимо их экранировать в кавычки, например так:
import os os.system(r'c:/"Program Files"/"Mozilla Firefox"/firefox.exe')
Если не знать как правильно передать путь в os.system то можно долго провозится, ломая голову почему оно не хочет запускать программы.
Для упрощения запуска команд, в пути которых есть пробелы, существует os.startfile:
import os os.startfile(r'c:/Program Files/Mozilla Firefox/firefox.exe')
os.startfile принимает простой текст, без необходимости заключать в кавычки имена папок с пробелами.
Еще два варианта (источник), каждый хорош в своем случаи
import subprocess import shlex cmd = 'ls -al' args = shlex.split(cmd) p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) result = p.communicate()[0]
import commands commands.getoutput('ls -la')
Начиная с версии 3 и выше запуск рекомендуется производить через subprocess.
import subprocess proc = subprocess.Popen("ping -c2 %s" % ip, shell=True, stdout=subprocess.PIPE) out = proc.stdout.readlines() # или out = proc.communicate()
Запуск приложений ОС из сценария на click в Python
Модуль click поддерживает запуск приложений ОС через функцию click.launch() . Это поведение можно использовать для открытия приложения по умолчанию, связанного с URL-адресом или типом (расширением) файла, например, для запуска веб-браузеров или программ просмотра изображений.
В дополнение к этому, функцию click.launch() может запускать файловый менеджер и автоматически выбирать предоставленный файл.
>>> import click # откроем заданный URL-адрес # в браузере по умолчанию >>> click.launch("https://click.palletsprojects.com/") # откроет указанный файл в связанном # приложении в данном случае откроет файл # в текстовом редакторе по умолчанию click.launch("/test/file.txt")
Если функцию передать аргумент wait=True , то функция будет дождаться завершения запущенной программы ОС. Это работает, только если запущенная программа блокируется. В частности, в Linux xdg-open не блокирует программы.
Если для аргумента locate установлено значение True , то вместо запуска связанного приложения, click.launch() попытается запустить файловый менеджер с обнаруженным файлом. Такое поведение может иметь странные эффекты, если вместо файла указан URL-адрес.
# откроет файловый менеджер click.launch("/test/file.txt", locate=True)
Пользовательский многострочный ввод для сценария командной строки.
Модуль click может автоматически запустить указанный редактор кода или текста через функцию click.edit() . Такое поведение очень полезно для запроса у пользователей многострочного ввода.
Функция click.edit() автоматически откроет редактор, определенный в аргументе editor , или если он не указан, предоставит пользователю выбрать его. Если пользователь закрывает редактор без сохранения, то возвращаемое значение будет None , в противном случае, это будет введенный текст.
# откроет редактор nano и добавит строку, # 'import click' при выходе из редактора с # сохранением, возвратит набранный текст >>> click.edit('import click', editor='nano') # 'import click\n\nclick.edit()\n'
Пример функции обертки:
import click def get_commit_message(): MARKER = '# Все, что ниже, игнорируется\n' message = click.edit('\n\n' + MARKER) if message is not None: return message.split(MARKER, 1)[0].rstrip('\n')
Кроме того, click.edit() можно использовать для запуска редакторов для файлов с определенным именем. В этом случае возвращаемое значение всегда будет None .
>>> import click # откроет файл 'test.py' в IDE 'Code' >>> click.edit(editor='code', filename='test.py')
Синтаксис и описание аргументов.
click.edit(text=None, editor=None, env=None, require_save=True, extension='.txt', filename=None)
Описание аргументов функции click.edit() :
- text : ( str ) — текст для редактирования.
- editor : (str ) — используемый редактор. По умолчанию автоматическое обнаружение.
- env : ( dict ) — переменные среды для передачи редактору.
- require_save : ( bool ) — если True , то при отсутствии сохранения в редакторе, возвращаемое значение будет None .
- extension : ( str ) — расширение, о котором нужно сообщить редактору. По умолчанию это .txt .
- filename : ( str ) — если указан, то будет редактировать этот файл вместо указанного текста в аргументе text . В этом случае редактор не будет использовать временный файл в качестве косвенного адреса.
- КРАТКИЙ ОБЗОР МАТЕРИАЛА.
- Интеграция модуля click с setuptools
- Cтиль и цвета при выводе текста в терминал, модуль click
- Опции сценария командной строки модуля click
- Позиционные параметры командной строки модуля click
- Встроенные типы опций и параметров модуля click
- Произвольное вложение команд в сценариях модуля click
- Запрос на ввод данных, подтверждение действий в сценариях модуля click
- Настройка страницы справки сценария на click
- Индикатор выполнения для модуля click
- Прокрутка длинного текста в терминале с модулем click
- Ожидание нажатия клавиши в сценарии click
- Запуск приложений ОС из сценария на click
Урок 6. Как запускать Python программы
В прошлом уроке мы запустили свою первую программу на Python, она вывела фразу «Hello, World!». И эту программу мы запустили с помощью PyCharm.
Однако это не единственный способ выполнять Python-скрипты. Рассмотрим еще несколько вариантов.
И первый — это запуск программ из командной строки. Введем в строке поиска введем cmd и кликнем по найденной программе. Появилось черное окно — это командная строка. Мы уже запускали её ранее, когда проверяли установлен ли Python.
И командная строка — это такое место, где вы можете вводить разные команды, а также названия программ и они будут выполнятся. Программистам часто приходится иметь дело с командными строками, терминалами и другими похожими оболочками.
Чтобы в командной строке запустить Python-программу нужно сперва перейти в каталог, где эта программа расположена.
По умолчанию после открытия терминала мы находимся в домашней папке активного Windows-пользователя. И так как все наши проекты хранятся в каталоге PycharmProjects, то нужно ввести:
cd PycharmProjects
cd — это команда для смены текущего каталога. Сокращение от Change dir. Нажмем Enter. И мы в каталоге с проектами. Теперь перейдем непосредственно в наш проект. Снова ведем команду cd после которой укажем имя проекта (sepython):
cd sepyhton
Нажму Enter. Командная строка вывела, что системе не удается найти указанный путь. Если вы видите такую же надпись, то причин может быть две:
Первая — это опечатка в имени файла или каталога. Это самая распространенная ошибка, внимательно проверьте то, что набрали.
Вторая причина может заключаться в том, что в данном каталоге просто нет папки SEPython. Возможно вы создали её в другом месте.
Чтобы проверить какие файлы или каталоги есть в текущей директории, надо набрать команду dir.
Чтобы минимизировать опечатки, можно пойти на небольшую хитрость и не вводить имя каталога вручную, а воспользоваться автоподстановкой командной строки.
Для этого надо снова ввести команду cd, за ней пробел, а после написать se и нажать клавишу Tab. Командная строка сама дополнит имя каталога до правильного. После чего нужно снова нажать Enter и нас сразу переместит в каталог с проектом.
Если мы еще раз выполним комунд dir, то увидим каталоги Lessons и Tasks, а также файл main.py.
Что ж, нам надо запустить нашу программу hello_world.py, а она находится в папке Lessons. Перейдем в неё:
cd Lessons
Теперь надо запустить hello_world.py и для этого надо сперва написать python, а затем через пробел имя программы hello_world.py:
python hello_world.py
Обратите внимание, что я набираю имя программы, ровно так как его записал в прошлом уроке. Все символы строчные, между словами стоит подчеркивание, а не пробел.
Что ж, нажму Enter! Программа вывела фразу «Hello, world! Отлично, у нас всё получилось.
Теперь давайте рассмотрим несколько распространенных ошибок, которые у вас могут возникнуть на данном этапе. Первая — это снова опечатка. Если поменять два последних символа местами и снова попробовать запустить программу, то мы увидим ошибку, что файл hello_world.yp не найден в текущем каталоге. Когда вы видите такую ошибку, то это повод проверить имя файла, а также его реальное присутствие в данной директории.
В целом с hello_world мы закончили, и осовная проблема данной прогарммы в том, что она всегда будет выводить фразу, которую мы задали внутри программы, а это делает код абсолютно бесполезным. Другое дело hello_user.py, которую я добавил самостоятельно (у вас этой программы пока нет).
Сейчас я покажу как она работает, а в следующем уроке покажу и объясню её исходный код. То есть то, что находится внутри скрипта.
Итак давайте введем:
python hello_user.py
Программа вывела что-то непонятное. На самом деле она завершилась с ошибкой. Дело в том, что скрипт hello_user.py нужно запускать с передачей аргументов или другими словами с передачей дополнительных параметров.
Это значит, что нужно писать python hello_user.py плюс еще какой-то текст, например такой:
python hello_user.py Nikita
В этом случае слово Nikita — это аргумент командной строки, который при запуске будет отправлен в программу hello_user.py.
То есть сейчас в строке три элемента: сам python, имя программы hello_user.py и аргумент командной строки Niktia.
Python запустит программу hello_user.py и передаст в неё слово Nikita. Программа в свою очередь примет это слово и что-то с ним сделает. Давайте посмотрим, что именно, нажмем Enter..
Скрипт отработал без ошибок и поздоровался с нами: «Hello Nikita. Отлично.
Если при запуске передать другой параметр, например Nikita заменить Alena, то скрипт поздоровается с Аленой:
python hello_user.py Alena
То есть теперь программа не просто работает, а она уже умеет каким-то элементарным способом обрабатывать входящие данные и выводить различные результаты в зависимости от этих данных.
В этом курсе, при решении задач, вам часто придется писать подобные программы, которые умеют принимать и обрабатывать входящие данные. И как это правильно сделать мы разберем в следующем уроке.
Следующий урок
Урок 7. Запуск программ с одним аргументом
В этом уроке вы узнаете как писать python-программы, которые принимают аргументы командой строки, а также о том, как из запускать.
Посмотреть
Полный курс с практикой
- 146 уроков
- 306 заданий
- Сертификат
- Поддержка преподавателя
- Доступ к курсу навсегда
- Можно в рассрочку
Запуск приложения через python
Но также, по мимо открытия сайта, возможно есть открытие приложений, так какой модуль/строку нужно прописать для открытия приложения на Пк?
Отслеживать
задан 2 авг 2021 в 15:20
user414690 user414690
Нет такого способа открытия сайта. Я запустил эту строчку и получилась ошибка.
2 авг 2021 в 15:27
Модуль webbrowser используется. Если вам надо — pip install webbrowser
– user414690
2 авг 2021 в 15:31
конечно же pip install webbrowser не будет работать модуль webbrowser — стандартный и его надо импортировать, а не устанавливать.
2 авг 2021 в 15:36
Насколько я понял, Вы хотите открыть любое приложение на ПК? Если это так, то для этого есть модули os и, если не ошибаюсь, subprocess. К ответу прилагаю ссылку на пример кода: codegrepper.com/code-examples/python/… Удачи!
2 авг 2021 в 15:39
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
python -m webbrowser -t ""
Отслеживать
7,797 13 13 золотых знаков 25 25 серебряных знаков 55 55 бронзовых знаков
ответ дан 12 мая 2022 в 9:45
добро пожаловать на Stack Overflow на русском! пожалуйста, постарайтесь оставлять чуть более развёрнутые ответы. дополнить ответ можно, нажав править
12 мая 2022 в 9:48
os.startfile(r'C:/Users/Johnny/AppData/Roaming/Telegram Desktop/t1/Telegram.exe')
Отслеживать
3,933 4 4 золотых знака 9 9 серебряных знаков 22 22 бронзовых знака
ответ дан 10 июн 2022 в 17:10
добро пожаловать на stack overflow на русском! пожалуйста, постарайтесь оставлять чуть более развёрнутые ответы. дополнить ответ можно, нажав править
10 июн 2022 в 17:15
Есть модуль, subprocess , который позволяет запускать системные команды (которые есть в консоле). А при помощи таких команд можно запустить необходимое приложение.
import subprocess subprocess.run(["calc.exe"])
Очень подробный ответ о возможности subprocess.run есть на английском StackOverflow
Отслеживать
ответ дан 9 фев 2023 в 20:23
mironovmeow mironovmeow
1,191 9 9 серебряных знаков 25 25 бронзовых знаков
Highly active question. Earn 10 reputation (not counting the association bonus) in order to answer this question. The reputation requirement helps protect this question from spam and non-answer activity.
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.