Python открыть файл внешней программой

Некоторые из наиболее распространенных задач в программировании связаны с чтением, записью или манипулированием данными. По этой причине особенно полезно уметь работать с различными форматами файлов, в которых хранятся разные типы данных. В этой статье мы расскажем, как обрабатывать текстовые файлы в Python 3.

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

Для проработки этого руководства у вас должен быть установлен Python 3, а также настроена локальная среда программирования на вашем компьютере.

Справочная информация

Python очень гибок и может легко работать с различными форматами файлов, включая, но не ограничиваясь следующими:

Тип файлаОписание
Обычный текст Обычные текстовые файлы хранят данные, которые представляют собой только символы (или строки) и исключают любые структурированные метаданные
CSV В CSV-файлах значения разделяются запятыми (или другими разделителями) для структурирования хранимых данных, позволяя сохранять данные в формате таблицы
HTML Файлы на языке гипертекстовой разметки хранят структурированные данные, предназначенные для отображения браузером, и обычно используются на сайтах
JSON JavaScript Object Notation — это простой и эффективный формат, что делает его одним из наиболее часто используемых форматов для хранения и передачи структурированных данных

Как на Python открыть ссылку

Этот материал будет посвящен работе с обычными текстовыми файлами.

Примечание редакции: о работе с CSV-файлами читайте в статье “Как прочитать CSV-файл в Python”.

Создание текстового файла

Прежде чем начать работу, необходимо убедиться, что у нас есть файл для работы. Для этого откройте редактор кода и создайте новый обычный текстовый файл days.txt.

В новом файле введите несколько строк текста с перечислением дней недели:

Monday Tuesday Wednesday Thursday Friday Saturday Sunday

Затем сохраните файл и запишите его местоположение. В данном примере наш пользователь sammy сохранил файл под именем /home/sammy/days.txt. Абсолютный путь к файлу понадобится в дальнейшем, когда мы будем открывать файл в Python.

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

Открываем текстовые файлы в Python 3

В своем редакторе кода создайте новый файл Python и назовите его files.py.

Чтобы открыть файл в Python, нам сначала нужно каким-то образом связать файл на диске с переменной в Python. Этот процесс называется открытием файла, а переменная – файловым дескриптором.

Для начала нужно указать Python, где находится файл. Местоположение файла часто называют путем к файлу. В нашем примере это /home/sammy/days.txt. Создайте переменную для хранения информации о пути.

#51. Функция open. Чтение данных из файла | Python для начинающих


path = ‘/home/sammy/days.txt’

Теперь можно использовать функцию Python open() , чтобы открыть наш файл days.txt. Функция open() требует в качестве первого аргумента путь к файлу. Она также принимает множество других параметров, из которых наиболее важным является необязательный параметр mode . Это необязательная строка, определяющая режим, в котором будет открыт файл. Выбор режима зависит от того, что вы хотите сделать с файлом. Вот некоторые из доступных режимов:

  • ‘r’ : используется для чтения из файла
  • ‘w’ : используется для записи в файл
  • ‘a’ : используется для добавления в файл
  • ‘r+’ : используется для чтения файла и записи в тот же файл.

В этом примере мы хотим только читать из файла, поэтому мы будем использовать режим ‘r’. Используйте функцию open() для открытия файла days.txt и присвойте результат переменной days_file .

Читайте также:
Программа вотс ап это

days_file = open(path, ‘r’)

Теперь, когда вы открыли файл, давайте прочтем его содержимое.

Читаем текстовые файлы в Python 3

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

Использование read

Функция read() возвращает все содержимое файла в виде одной строки. Например:

days_file.read()

Результат будет следующим:

‘MondaynTuesdaynWednesdaynThursdaynFridaynSaturdaynSundayn’

Примечание: n – это символ новой строки. При непосредственном взаимодействии с Python (например, при простом запуске python из командной строки), он будет использовать n для отображения новой строки. Вы также можете использовать его для обозначения новой строки при создании собственных строк.

Использование readline

Функция readline() возвращает следующую строку файла до очередного символа новой строки включительно. Проще говоря, эта операция читает файл построчно.

days_file.readline()

Результат будет следующим:

‘Mondayn’

Как только вы прочитаете строку с помощью операции readline , текущая точка, с которой должно происходить чтение файла, переместится на следующую строку. Если снова вызвать эту фукнцю, она вернет следующую строку в файле:

days_file.readline()
‘Tuesdayn’

Использование readlines

И, наконец, readlines() возвращает список строк в файле, где каждый элемент списка представляет собой одну строку.

days_file.readlines()
[‘Mondayn’, ‘Tuesdayn’, ‘Wednesdayn’, ‘Thursdayn’, ‘Fridayn’, ‘Saturdayn’, ‘Sundayn’]

При чтении из файлов следует помнить, что после того, как файл был прочитан с помощью одной из операций чтения, он не может быть прочитан снова. Например, если сначала выполнить days_file.read() , а затем days_file.readlines() , то вторая операция вернет пустую строку.

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

Теперь, когда мы научились читать из файла, давайте узнаем, как записывать в новый файл.

Запись данных в текстовые файлы в Python 3

В этом шаге вы запишете новый файл с заголовком Days of the Week, за которым последует содержимое первого файла. Сначала создайте переменную title (заголовок).

title = ‘Days of the Weekn’

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

path = ‘/home/sammy/days.txt’ days_file = open(path, ‘r’) days = days_file.read()

Теперь, когда у вас есть переменные для заголовка и дней недели, вы можете начать запись в новый файл. Сначала укажите местоположение файла. Опять же, мы будем использовать каталог /home/sammy/, поэтому наш путь будет /home/sammy/new_days.txt. Затем вы можете открыть новый файл в режиме записи, используя функцию open() с указанным режимом ‘w’ .

new_path = ‘/home/sammy/new_days.txt’ new_days = open(new_path, ‘w’)

Примечание: если файл new_days.txt уже существует до открытия файла, его старое содержимое будет перезаписано, поэтому будьте осторожны при использовании режима ‘w’ !

После того как новый файл открыт, вы можете добавить данные, используя метод write() . Этот метод принимает один строковый параметр и записывает эти данные в файл. Если вы хотите начать новую строку в файле, вы должны явно указать символ новой строки n . Когда мы присвоили переменной title значение ‘Days of the Weekn’, символ новой строки был включен.

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

new_days.write(title) print(title) new_days.write(days) print(days)

И наконец, когда вы закончите работу с файлом, нужно закрыть его.

Как закрывать файлы в Python 3

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

Для этого примера закройте все наши файлы с помощью метода close() .

days_file.close() new_days.close()

Использование with

Рекомендуемый способ работы с файлами в Python 3 (часто называемый питоническим способом) заключается в использовании операторов with . Эти утверждения представляют собой сокращенные способы задать контекст, в котором выполняется работа, а после завершения этого контекста автоматически позаботиться об окончательных деталях, чтобы предотвратить распространенные ошибки. В случае работы с файлами оператор with автоматически закроет файл.

Читайте также:
Как записать видео на dvd r диск без программ

Как и любой блок в Python, например, определение функции, оператор if или цикл, оператор with имеет форму простого оператора, за которым следует двоеточие и блок кода с отступом. Вот пример кода, который открывает файл и печатает его содержимое:

with open(‘/home/sammy/days.txt’, ‘r’) as days_file: days = days_file.read() print(days)

Давайте пошагово рассмотрим, что делает этот код. Как и раньше, мы открываем файл с помощью встроенной функции Python open() , передавая путь к файлу и параметры режима. Однако, поскольку мы используем оператор with , вместо того, чтобы присвоить полученный хэндл файла переменной с помощью = , мы присваиваем его с помощью ключевого слова as . Это часть полного синтаксиса оператора with :

with action as result: . . .

После символа : мы переходим к следующей строке и делаем отступ в коде – именно так Python организует функциональные блоки. Как и раньше, у нас есть доступ к хэндлу файла в переменной days_file , поэтому мы можем вызвать метод read() , чтобы получить все содержимое и распечатать его.

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

Применяем with в нашем коде

Давайте перепишем наш код, применив оператор with :

with open(path, ‘r’) as days_file, open(new_path, ‘w’) as new_days: days = days_file.read() new_days.write(title) new_days.write(days) print(title) print(days)

Теперь код стал гораздо более организованным. Как и прежде, мы начинаем с определения некоторых переменных: путей к двум нашим файлам и заголовка, который мы будем использовать как заголовок нового файла. После этого мы используем оператор with , открываем наши два файла и сохраняем результаты в переменных с соответствующими именами. Как и раньше, мы читаем содержимое файла days_file , затем записываем заголовок и это содержимое в new_days . Наконец, в конце блока мы выводим прочитанные значения title и days .

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

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

Проверка нашего кода

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

path = ‘/home/sammy/days.txt’ new_path = ‘/home/sammy/new_days.txt’ title = ‘Days of the weekn’ with open(path, ‘r’) as days_file, open(new_path, ‘w’) as new_days: days = days_file.read() new_days.write(title) new_days.write(days) print(title) print(days)

После сохранения кода откройте терминал и запустите ваш Python-скрипт, как показано ниже:

python files.py

Примечание редакции: рекомендуем почитать “Как запустить скрипт Python”.

Выходные данные будут выглядеть следующим образом:

Days of the Week Monday Tuesday Wednesday Thursday Friday Saturday Sunday

Теперь еще раз проверьте, что код полностью сработал, открыв новый файл (new_days.txt). Если все прошло успешно, он должен содержать следующее:

Days of the Week Monday Tuesday Wednesday Thursday Friday Saturday Sunday

Заключение

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

1 комментарий к “Как обрабатывать текстовые файлы в Python 3”

  1. Пингбэк: Подсчет слов в строке или файле при помощи Python

Источник: pythonturbo.ru

Как открыть файлы во внешних программах на Python? [дубликат]

мне интересно, как открыть файлы в таких программах, как Notepad и Picture Viewer в зависимости от расширения файла. Я использую Python 3.3 В Windows.

Читайте также:
Indesit машинка стиральная инструкция программы

Я сделал некоторые исследования и люди упомянули модуль с именем Image , но когда я пытаюсь импортировать этот модуль я получаю ImportError.

вот что у меня пока есть:

def openFile(): fileName = listbox_1.get(ACTIVE) if fileName.endswith(«.jpg»): fileName.open()

у меня также будут файлы HTML и JSON, которые мне нужно будет открыть в блокноте.

автор: APerson

3 ответов

в 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 модуль например, 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) блокирует до завершения команды и вызывает исключение, если команда завершается ненулевым кодом выхода.

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

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

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

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

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

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

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

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

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

например, для запуска Блокнота.exe

import subprocess import os path_to_notepad = ‘C:WindowsSystem32notepad.exe’ path_to_file = ‘C:UsersDesktophello.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 аргумент to эта программа говорит ему, что она собирается запустить банку, и, наконец, Argument3 сообщает целевой программе, Где найти файл для открытия.

Источник: askdev.ru

Как использовать «с» в Python для открытия файлов (включая примеры)

Как использовать «с» в Python для открытия файлов (включая примеры)

Вы можете использовать следующий синтаксис, чтобы открыть файл в Python, сделать с ним что-то, а затем закрыть файл:

file = open(‘my_data.csv’) df = file.read() print(df) file.close ()

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

Лучше использовать с open , который использует следующий базовый синтаксис:

with open(‘my_data.csv’) as file: df = file.read() print(df)

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

В следующих примерах показано, как использовать open в различных сценариях.

Пример 1. Использование оператора With для чтения файла

В следующем коде показано, как использовать оператор with для чтения файла в Python и вывода содержимого файла:

with open(‘my_data.csv’) as file: df = file.read() print(df) ,points,assists,rebounds 0,11,5,6 1,17,7,8 2,16,7,8 3,18,9,10 4,22,12,14 5,25,9,12 6,26,9,12 7,24,4,10 8,29,8,11

Содержимое файла печатается, и файл автоматически закрывается без ввода нами file.close() .

Пример 2: Использование оператора With для записи файла

В следующем коде показано, как использовать оператор with для записи текста в файл:

with open(‘data_out.csv’, ‘w’) as file: file.write(‘Some text to write to CSV file’)

Обратите внимание, что ‘ w ‘ в операторе open() указывает Python использовать режим «записи» с файлом, а не режим чтения.

Пример 3. Использование оператора With для чтения и записи файлов

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