Как открыть программу через питон

Мне интересно, как открывать файлы в таких программах, как «Блокнот» и «Просмотр изображений», в зависимости от расширения файла. Я использую Python 3.3 для Windows. Я провел некоторое исследование, и люди упомянули модуль с именем Image , но когда я пытаюсь импортировать этот модуль, я получаю ImportError. Вот что я до сих пор:

def openFile(): fileName = listbox_1.get(ACTIVE) if fileName.endswith(«.jpg»): fileName.open()
У меня также будут файлы HTML и JSON, которые мне нужно будет открыть в Блокноте.
jfs 24 фев. 2013, в 18:33
Поделиться

Вы, вероятно, должны упомянуть, какую платформу вы используете.
FatalError 24 фев. 2013, в 17:33
спасибо interjay, был ответ на этот вопрос, который я могу использовать
user1816467 24 фев. 2013, в 17:38
Поделиться:

3 ответа

Лучший ответ

Используйте это, чтобы открыть любой файл с программой по умолчанию:

import os def openFile(): fileName = listbox_1.get(ACTIVE) os.system(«start » + fileName)

Если вы действительно хотите использовать определенную программу, например блокнот, вы можете сделать это следующим образом:

Уроки Python / Запуск внешних приложений


import os def openFile(): fileName = listbox_1.get(ACTIVE) os.system(«notepad.exe » + fileName)

Кроме того, если вам нужно выполнить некоторые проверки перед открытием файла, не стесняйтесь их добавлять. Это покажет вам, как открыть файл.

user2032433 24 фев. 2013, в 18:25
Поделиться
os.system() заблокирует вызывающий поток. Что-то из модуля subprocess может быть более подходящим.
FatalError 24 фев.

2013, в 17:37

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

user1816467 24 фев. 2013, в 17:39
user2032433 24 фев. 2013, в 17:43

да собирался поставить двойную проверку для JSON и HTML, а затем использовать еще, чтобы открыть остальные

user1816467 24 фев. 2013, в 17:45
user1816467 24 фев. 2013, в 18:17
Это похоже только на окна
Jonathan 01 окт. 2015, в 02:06

Показать ещё 4 комментария

В Windows вы можете использовать os.startfile() , чтобы открыть файл с использованием приложения по умолчанию:

import os os.startfile(filename)

Нет shutil.open() , который сделает это кросс-платформенным. Близкое приближение webbrowser.open() :

import webbrowser webbrowser.open(filename)

который может автоматически использовать команду open для OS X, os.startfile() для Windows, xdg-open или аналогичных в Linux.

Если вы хотите запустить конкретное приложение, вы можете использовать subprocess module, например, Popen() позволяет запустить программу, не дожидаясь ее завершения:

import subprocess p = subprocess.Popen([«notepad.exe», fileName]) # . do other things while notepad is running returncode = p.wait() # wait for notepad to exit

Существует много способов использовать модуль subprocess для запуска программ, например subprocess.check_call(command) , пока команда не завершится и не создаст исключение, если команда завершается с помощью ненулевой код выхода.

Запуск внешних приложений с помощью python

jfs 24 фев. 2013, в 18:44
Поделиться

Единственная проблема заключается в том, что у файлов json нет приложения по умолчанию, поэтому появится окно, спрашивающее пользователя, в какой программе его открыть.

user1816467 24 фев. 2013, в 18:39
jfs 24 фев. 2013, в 18:55

Расширение предложения FatalError с примером.

Читайте также:
Установка программ из tar xz

Еще одно преимущество использования subprocessing , а не os.system заключается в том, что он использует одну и ту же синтаксическую кросс-платформу ( os.system для Windows требуется «начало» в начале, тогда как для OS X требуется и «открыть». Не огромное дело, но еще одно, что нужно запомнить).

Открытие файла с помощью subprocess.call .

Все, что вам нужно сделать для запуска программы, — это вызов subprocess.call() и lass в list аргументов, где первый — это путь к программе, а остальные — дополнительные аргументы, которые вы хотите предоставить программе вы запускаете.

Например, для запуска Notepad.exe

import subprocess import os path_to_notepad = ‘C:\Windows\System32\notepad.exe’ path_to_file = ‘C:\Users\Desktop\hello.txt’ subprocess.call([path_to_notepad, path_to_file])

Передача нескольких аргументов и путей одинаково проста. Просто добавьте дополнительные элементы в список.

Запуск с несколькими аргументами

Это, например, запускает JAR файл, используя определенную копию среды выполнения Java.

import subprocess import os current_path = os.getcwd() subprocess.call([current_path + ‘/contents/home/bin/java’, # Param 1 ‘-jar’, #Param2 current_path + ‘/Whoo.jar’]) #param3

Аргумент 1 нацелен на программу, которую я хочу запустить. Аргумент2 предоставляет аргумент этой программе, говорящий, что он будет запускать JAR, и, наконец, Аргумент 3 сообщает целевой программе, где найти файл для открытия.

Zack Yoshyaro 24 фев. 2013, в 18:17
Поделиться

Ещё вопросы

  • 1 Шаблон наблюдателя в Android
  • 1 График зависимостей. Параллельная обработка
  • 1 ASP.net MVC параметры маршрутизации
  • 1 Hibernate встраиваемое отображение списка с идентификатором
  • 0 li.hover не меняет цвет
  • 1 Линейный график D3 JS начинается с 0
  • 1 С чего начать для NodeJS?
  • 0 Слайдер Jquery не работает на iPad отлично работает в браузере
  • 1 Служба Windows с FileWatcher не работает должным образом
  • 0 О выравнивании данных конкретной структуры
  • 1 Типы предупреждений в Python и MATLAB
  • 0 нг-повтор с фильтром и двойной порядок
  • 1 NUnit Test с Moq и множеством недостающих данных, это правильно?
  • 1 Java 2d Game: рендеринг Q
  • 0 Ось даты JQPlot не представляет график
  • 0 Разница между php и python mongodb адаптером
  • 0 Получить учетные данные базы данных из файла context.xml
  • 0 Выбор даты угловой UI, приводящий к значению $ valid, равному false
  • 0 Преобразовать этот запрос SQL в запрос mongodb —
  • 1 Новые автозаполнения Google вылетали при клике
  • 0 Вертикально выровнять div относительно родного брата
  • 0 C ++ не может заполнить данные
  • 0 Как проверить поле ввода внутри ng-repeat
  • 1 Проблемы с конвертацией проекта Android Studio в новый ключ API
  • 0 Лучше ли всегда проверять возвращаемое значение PDOStatement :: execute?
  • 0 использование поля со списком для заполнения другого поля со списком, чтобы пользователь мог выполнить запрос
  • 0 Показать постоянную ссылку в поисковых системах
  • 1 Позвоните класс для рецептов Minecraft
  • 0 Применять скрипт jquery только к определенным тегам
  • 1 Как контролировать отображение окон tkinter Toplevel?
  • 1 Вставка Сортировка LinkedList Java
  • 1 Компонент сценария служб SSIS — процесс 1 строки из Json в таблицу
  • 1 Динамическое вычисление SVG Path для полного круга с помощью JavaScript
  • 1 как проверить конструктор экземпляра
  • 0 Проблемы вычисления выражения постфикса с более чем двумя операндами
  • 0 Как лучше всего вставить данные в таблицу при отправке формы?
  • 0 Шаблонный класс C ++ с пользовательским поведением для контейнеров против примитивных типов?
  • 1 Как мне проанализировать JSON, у которого экранированы акценты ключей и значений, не влияя на экранирование в значениях полей?
  • 1 предложения по разработке JFrame
  • 1 Массив для сортировки рекордов
  • 1 hdf5storage.write () не сохраняет в указанный путь?
  • 1 Доступ к кодам категорий для объектов Index в Pandas
  • 1 Список стандартизации Java
  • 0 Почему javascript (jquery), если операторы не работают, как операторы php if? И что такое решение?
  • 1 Как исправить «android.enableSeparateAnnotationProcessing является экспериментальным и не поддерживается», который регистрируется как предупреждение?
  • 1 JSR-303 ошибки проверки на сущности не отображаются в JSP
  • 0 Angular Chart.js не отображает диаграмму (отображается легенда)
  • 0 Как я могу решить временную сложность следующего кода SQL?
  • 0 Настройте Cordova в браузере приложений
  • 1 как найти угол определенной точки
Читайте также:
Методы разработки алгоритмов и программ

Источник: overcoder.net

Работа с файлами в Питоне

Работа с файлами в Питоне представлена широким набором возможностей. Имеются как встроенные инструменты, так и сторонние модули и библиотеки, позволяющие открывать и читать документы, а также записывать в них любую информацию.

Python умеет взаимодействовать со следующими форматами файлов: txt, jpg, csv, json, html, xlsx, pdf и целым рядом других. Удобство заключается в том, что для каждого случая есть отдельный модуль, ускоряющий разработку.

Хорошей практикой считается активация виртуальной среды под конкретную проблему. Другими словами, устанавливать библиотеки нужно не глобально, для всей операционной системы, а для отдельного проекта. В этом помогает виртуальное окружение. Прежде чем переходить к написанию кода, нужно сформировать окружение проекта.

В Windows это делается следующим образом (в нужной папке открываем терминал и прописываем команды):

py -m venv .venv .venvScriptsactivate

Вначале мы создаем папку виртуального окружения «.venv» (имя может быть любым), а затем активируем ее. Теперь все, что мы установим, будет связано только с данным проектом.

В UNIX-системах (Linux, MacOS) команды будут такими:

python3 -m venv .venv source .venvbinactivate

Открытие и чтение текстового файла

Для этого в Питоне имеются следующие конструкции:

Чтение из файла питон

  • Функция open() – открывает документ в виде файлового объекта;
  • Функция close() – закрывает файл и удаляет его из оперативной памяти;
  • Контекстный менеджер with (автоматически очищает память после работы с файлом). Его синтаксис показан на рисунке ниже.
  • Метод read() – считывает документ полностью или частично в виде строки;
  • Метод readline() – построчно выводит содержимое объекта;
  • Метод readlines() – формирует из строк файла список.

В папке проекта создадим текстовый документ «econ.txt» с таким наполнением:

Девальвация национальной валюты Индексация пенсий прошла успешно Инфляционные ожидания игроков рынка Экономическая ситуация в регионе

Писать код будем в IDE PyCharm (среду разработки скачиваем с официального сайта).

# Открываем файл в режиме чтения и кодировке UTF-8 txt = open(‘econ.txt’, ‘r’, encoding=’utf-8′) # Выводим на печать первую строку print(txt.readline()) # Удаляем объект из памяти txt.close() # Открываем файл при помощи контекстного менеджера with open(‘econ.txt’, ‘r’, encoding=’utf-8′) as txt: # Печатаем первые 20 символов print(txt.read(20)) # Файл удалится из памяти сам
Девальвация национальной валюты Девальвация национал

Режимы работы с документом

Вторым параметром в функцию open() передается режим работы с файлом. Охарактеризуем их (таблица 1).

Запись в файл Питон

Также вкладка получит название «Запись».

Файлы операционной системы

Встроенный модуль os позволяет просматривать содержимое каталогов и редактировать его.

Ознакомимся со следующими функциями:

  • mkdir() – создание папки в выбранном каталоге;
  • walk() – определение списка всех файлов и директорий внутри заданной и ее подпапках;
  • remove() – удаление файла из системы;
  • rename() – переименование документа и пр.

Приведем несколько примеров работы с библиотекой.

import os # Создаем в текущей директории папку os.mkdir(‘temp’) # Перемещаемся в нее os.chdir(‘temp’) # Внутри каталога «temp» генерируем 7 текстовых файлов for index in range(7): with open(f’.txt’, ‘w’, encoding=’utf-8′) as file: print(index, file=file) # Переименовываем документ «1.txt» os.rename(‘1.txt’, ‘первый.txt’) # Удаляем файл «3.txt» os.remove(‘3.txt’) # Просматриваем содержимое папки temp print(os.listdir(‘.’))

В результате работы программы в папке «temp» окажутся следующие файлы: ‘0.txt’, ‘2.txt’, ‘4.txt’, ‘5.txt’, ‘6.txt’, ‘первый.txt’.

Читайте также:
Как работать в программе illustrator cc

Редактирование изображений в Питоне

Для работы с картинками используют внешний модуль Pillow. Он позволяет создавать и изменять рисунки, а также накладывать на них текст.

В первую очередь следует установить модуль:

pip install Pillow

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

from PIL import Image, ImageDraw, ImageFilter # Создаем рисунок с белым фоном img = Image.new(‘RGB’, (600, 600), ‘white’) draw = ImageDraw.Draw(img) # Помещаем на него красный квадрат (рисунок 3) draw.rectangle((100, 100, 500, 500), fill=’red’) # Делаем размытие (рисунок 4) img = img.filter(ImageFilter.BoxBlur(radius=75)) # Преобразуем картинку в черно-белую (рисунок 5) img = img.convert(‘L’)

Python: создание файла Как открыть файл в Питоне Работа с файлами Питон

Заключение

Как открыть сайт в браузере из скрипта Python

Чтобы открыть сайт в браузере по умолчанию (Windows, macOS, Linux) из скрипта Python, нужно использовать команду webbrowser.open(‘https://ya.ru’) чтобы открыть Яндекс. Не забудьте импортировать модуль webbrowser ( import webbrowser ). Устанавливать ничего не нужно, т.к. этот модуль уже присутствует в стандартной библиотеке Python.

Пример

Вот пример скрипта Python, который открывает следующий сайт https://mmazurenko.com

import webbrowser webbrowser.open(‘https://mmazurenko.com’)

Новая вкладка вашего браузера по умолчанию (Chrome, Edge, Safari, FireFox — любой который установите в ОС по умолчанию) откроется отправленная аргументом функции webbrowser.open()

Как открыть сайт в браузере из скрипта Python

О модуле Webbrowser

Модуль Webbrowser это часть стандартной библиотеки Python, поэтому можно импортировать его без необходимости что-либо устанавливать дополнительно.

Также можно запустить модуль из командной строки или терминала следующей строкой:

python -m webbrowser -t «https://mmazurenko.com»

Это пригодится когда вдруг понадобится открыть сайт из командной строки ОС или из терминала (Windows, macOS, Linux). Это делает использование Python переносимым и независимым от операционной системы.

Webbrowser open()

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

webbrowser.open(url, new=0, autoraise=True)

Аргумент new позволяет контролировать окно браузера:

  • Если задать new=0 (значение по умолчанию), откроется URL в том же окне браузера.
  • Если задать new=1 , откроется новое окно браузера.
  • Если задать new=2 , откроется новая вкладка браузера.

Webbrowser Open in New Tab

Простой способ открыть URL в новой вкладке из Python скрипта вызвав webbrowser.open_new_tab() и передать строку с адресом в качестве единственного аргумента.

import webbrowser my_url = ‘http://mmazurenko.com’ webbrowser.open_new_tab(my_url)

Выбор браузера

Можно также передать объекту контроллера заданный браузер вызвав функцию webbrowser.get() и передав в неё тип браузера. Теперь можно вызвать open() или open_new_tab() методы объекта контроллера чтобы открыть URL в определённом браузере.

import webbrowser webbrowser.get(«firefox»).open(«http://mmazurenko.com»)

Вот поддерживаемые типы браузеров:

Имя типа Имя класса
‘mozilla’ Mozilla(‘mozilla’)
‘firefox’ Mozilla(‘mozilla’)
‘netscape’ Mozilla(‘netscape’)
‘galeon’ Galeon(‘galeon’)
‘epiphany’ Galeon(‘epiphany’)
‘skipstone’ BackgroundBrowser(‘skipstone’)
‘kfmclient’ Konqueror()
‘konqueror’ Konqueror()
‘kfm’ Konqueror()
‘mosaic’ BackgroundBrowser(‘mosaic’)
‘opera’ Opera()
‘grail’ Grail()
‘links’ GenericBrowser(‘links’)
‘elinks’ Elinks(‘elinks’)
‘lynx’ GenericBrowser(‘lynx’)
‘w3m’ GenericBrowser(‘w3m’)
‘windows-default’ WindowsDefault
‘macosx’ MacOSXOSAScript(‘default’)
‘safari’ MacOSXOSAScript(‘safari’)
‘google-chrome’ Chrome(‘google-chrome’)
‘chrome’ Chrome(‘chrome’)
‘chromium’ Chromium(‘chromium’)
‘chromium-browser’ Chromium(‘chromium-browser’)

Следует добавить, что если интерпретатор Python не найдет выбранный браузер, то скрипт завершится ошибкой: webbrowser.Error: could not locate runnable browser .

Таким простым способом, можно открыть сайт в браузере из скрипта Python.

P.S. У меня почему-то вариант с выбором браузера работает только при запуске через IDLE (Python). Запуск по двойному клику по скрипту не срабатывает (Windows 10). Хотя простой запуск без выбора браузера работает.

Источник: mmazurenko.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru