Простой способ создать файл в python
Умение создавать файлы в Python открывает массу новых возможностей — например, позволяет хранить данные, сохраняя их согласованность для разных пользователей. Вместе с тем упрощает процесс управления данными, скрапинга контента и многое другое.
Важно и то, что в Python этот процесс очень простой.
Как создать файл в Python в три строки
С помощью следующего кода можно создать файл с названием BabyFile.txt и записать в него текст «Привет, файл!»:
my_file = open("BabyFile.txt", "w+")
my_file.write("Привет, файл!")
my_file.close()В начале объявляется переменная my_file . После этого используются встроенные функции open и write для открытия и записи в файл. "w+" сообщает, что запись будет осуществляться в новый файл. Если он существует, то новое содержимое нужно записать поверх уже существующего. Если же вместо этого использовать параметр "w" , тогда файл будет создан только в том случае, если он не существовал до этого.
Важно заметить, что в конце файл всегда нужно закрывать, чтобы изменения сохранились.
Как записывать, добавляя новое содержимое
С созданием файла разобрались. Теперь можно узнать, как редактировать, удалять и даже копировать файлы.
Если нужно добавить новые данные в файл, тогда вместо "w+" нужно просто использовать параметр "a+" .
Работа с текстовыми файлами Python 3
Независимо от того, какое приложение вы используете, гарантировано, что в процессе его работы будет задействован ввод или вывод данных. В этом руководстве кратко описываются форматы, которые может обрабатывать Python. Затем мы рассмотрим, как открывать, считывать и записать текстовый файл в Python 3.
Работа с текстовыми файлами Python 3 -исходные ресурсы
Для этого руководства нужно установить Python 3. Также на вашем компьютере должна быть установлена локальная среда программирования.
Основа
Python может с относительной легкостью обрабатывать различные форматы файлов:
| Тип файла | Описание |
| Txt | Обычный текстовый файл хранит данные, которые представляют собой только символы (или строки) и не включает в себя структурированные метаданные. |
| CSV | Файл со значениями,для разделения которых используются запятые (или другие разделители). Что позволяет сохранять данные в формате таблицы. |
| HTML | HTML-файл хранит структурированные данные и используется большинством сайтов |
| JSON | JavaScript Object Notation - простой и эффективный формат, что делает его одним из часто используемых для хранения и передачи данных. |
В этой статье основное внимание будет уделено формату txt.
Шаг 1 - Создание текстового файла
Сначала нужно подготовить файл для работы. Для этого мы откроем любой текстовый редактор для python и создадим новый txt-файл, назовем его days.txt.
В этом файле необходимо ввести несколько строк. В приведенном ниже примере мы перечислим дни недели:
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
Затем сохраните файл. В нашем примере пользователь sammy сохранил файл здесь: /users/sammy/days.txt . Это будет важно на последующих этапах, когда откроем файл в Python.
Шаг 2 - Открытие файла
Прежде чем написать программу, нужно создать файл для кода Python. С помощью текстового редактора создадим файл files.py. Чтобы упростить задачу, сохраните его в том же каталоге, что и файл days.txt:
Чтобы открыть файл, сначала нужно каким-то образом связать его с переменной в Python. Этот процесс называется открытием файла. Сначала мы укажем Python, где находится файл.
Чтобы Python мог открыть файл, ему требуется путь к нему: days.txt -/users/sammy/days.txt . Затем создаем строковую переменную для хранения этой информации. В нашем скрипте files.py мы создадим переменную path и установим для нее значение days.txt .
path = '/users/sammy/days.txt'
Затем используем функцию Python open(), чтобы открыть файл days.txt . В качестве первого аргумента она принимает путь к файлу.
Эта функция также позволяет использовать многие другие параметры. Но наиболее важным является параметр, определяющий режим открытия файла. Он зависит от того, что вы хотите сделать с файлом.
Вот некоторые из существующих режимов:
- 'r': использовать для чтения;
- 'w': использовать для записи;
- 'x': использование для создания и записи в новый файл;
- 'a': использование для добавления к файлу;
- 'r +': использовать для чтения и записи в тот же файл.
В текущем примере нужно только считать данные из файла, поэтому будем использовать режим «r». Применим функцию open() , чтобы открыть файл days.txt и назначить его переменной days_file .
days_file = open(path,'r')
Как создавать txt файл на рабочем столе в windwos 10 с помощью Python
столкнулся с проблемой что создавая txt файл в любой директории он создается, а в дириктории C:\Users\epicb\Desktop он не создается и выдает ошибку syntax erorr хотя я только изменил директорию, и есть еще один вопрос, если я скину кому-то эту программу то это не сработает из за того что разные имена пользователей, как можно заменить epicb на имя юзера который запустил программу. вот часть кода file = open("C:\Users\epicb\Desktop/Hello_world !", "w", encoding="utf-8")
Отслеживать
задан 26 дек 2020 в 13:03
user420913 user420913
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
# импортируем модуль, который поможет получить имя пользователя import getpass # получаем имя пользователя и присваиваем его в переменную USER_NAME # так как у всех разное имя пользователя USER_NAME = getpass.getuser() # присваиваем путь с USER_NAME и имя файла в переменную path path = r'C:\Users\%s\Desktop\Hello_world.txt' % USER_NAME file = open(path, 'w') # создаем txt файл file.write('Hello, World!') # записываем текст file.close() # закрываем файл
Отслеживать
ответ дан 26 дек 2020 в 16:50
345 1 1 золотой знак 2 2 серебряных знака 10 10 бронзовых знаков
Поясните, что именно сделано и почему. А то польза ответа сводится к минимуму.
26 дек 2020 в 17:19
изменил ответ, вроде все объяснил
26 дек 2020 в 17:32
Лично я в таких случаях юзаю модуль os, и вам советую. Сначала нужно через данный модуль узнать имя пользователя.
import os user = os.getenv("USERPROFILE") # выведет C:\\Users\\юзер, через ос можно вывести чистое имя пользователя, но так будет удобнее
Затем уже нужно создать сам файл.
import os user = os.getenv("USERPROFILE") filename = user + "\\Desktop\\file.txt" f = open(filename, "w", encoding="utf-8") f.close()
Работа с файлами
Взаимодействие с файлами в языке программирования Python предоставляет пользователю возможность хранить информацию, которая была обработана приложением, чтобы потом получать к ней доступ в любое удобное время. Базовые функции этого языка позволяют достаточно легко создавать, записывать и читать данные из файлов.
Создание и открытие
Чтобы получить возможность работать с файлом в Python 3, для начала его необходимо создать. Сделать это можно стандартными средствами операционной системы, перейдя в нужный каталог и создав новый документ с форматом txt. Однако аналогичное действие выполняется и с помощью метода open в языке программирования Python, которому надо передать в качестве параметров название файла и режим его обработки.
Следующий код демонстрирует получение переменной file ссылки на новый документ. Если запустить эту программу, она создаст текстовый файл test.txt в папке, где хранится исходный код.
file = open("test.txt", "w") file.close()
Если же файл с указанным именем test.txt уже существует в каталоге с кодом, программа просто продолжит работу с ним, не создавая новый документ. Как можно заметить, имя файла является первым параметром метода open. Сразу за ним следует специальная буква, которая обозначает метод обработки данных. В данном случае «w» означает write, то есть запись. Подробнее обо всех доступных режимах работы будет немного дальше, а сейчас важно усвоить, что после выполнения любых манипуляций над файлом, его обязательно следует закрыть с помощью функции close, чтобы гарантированно избежать потери информации.
В предыдущем примере для доступа к файлу был использован относительный путь, который не содержит в себе исчерпывающих сведений о местоположении объекта на жестком диске. Для того, чтобы задать их, необходимо в качестве первого аргумента функции open прописать абсолютный путь. В данном случае документ test.txt будет находиться в корневом каталоге на диске D, а не в папке программы.
file = open(r"D:\test.txt", "w") file.close()
Перед строковым литералом мы использовали символ r, для отключения экранирования. Иначе компилятор посчитает последовательность «\t» как символ табуляции и выдаст исключение.
Режим открытия
Ранее были упомянуты специальные символы, которые используются в языке Python при открытии файла. Они задают режим открытия файла. Указывают программе, как именно нужно открывать. Все они представлены в следующей таблице, которая содержит их сигнатуру и короткое описание назначения.
| Символ | Значение |
| «r» | открытие для чтения (по умолчанию) |
| «w» | открытие для записи, а если его не существует по заданному пути, то создается новый |
| «x» | открытие для записи, но только если его еще не существует, иначе будет выдано исключение |
| «a» | открытие на дополнительную запись, чтобы информация добавлялась в конец документа |
| «b» | открытие в двоичном режиме |
| «t» | открытие в текстовом режиме (по умолчанию) |
| «+» | открытие одновременно на чтение и запись |
Пользуясь вторым аргументом метода open, можно комбинировать различные режимы работы с файлами, указывая, к примеру, «rb» для чтения записанных данных в двоичном режиме.
Еще один пример: отличие «r+» и «w+» заключается в том, что во втором случае создастся новый файл, если такого нет. В первом же случае возникнет исключение. При использовании «r+» и «w+» файл будет открыт и на чтение и на запись. Пример обработки исключения разберем, когда будем рассматривать чтение файла.
Методы
Объект, который возвращает функция open, содержит ссылку на существующий файл. Также в нем имеется информация о созданном документе, представленная в виде четырех основных полей. Все они описаны в следующей таблице, которая содержит их имена и значение.
| Свойство | Значение |
| name | возвращает имя файла |
| mode | возвращает режим, в котором был открыт |
| closed | возвращает true, если файл закрыт и true, если открыт |
| softspace | возвращает true, если при выводе данных из файла не следует отдельно добавлять символ пробела |
Чтобы вывести на экран свойства файла, достаточно воспользоваться оператором доступа, то есть точкой, после чего передать это в качестве параметра уже знакомой функции print.
f = open(r"D:\test.txt", "w") print(f.name) f.close() D:\test.txt
Запись
В Python 3 запись в файл осуществляется с помощью метода write. Метод вызываем у объекта, который ссылается на существующий файл. Важно помнить, что для этого следует предварительно открыть документ с помощью функции open и указать режим записи символом «w». Метод write принимает в качестве аргумента данные, которые нужно поместить в текстовый файл. Следующий пример кода показывает запись строки «hello».
file = open("test.txt", "w") file.write("hello") file.close()
Если необходимо добавить новую информацию к записанным ранее данным, следует заново вызвать функцию open, указав ей в качестве режима работы символ «a». В противном случае все сведения из файла test.txt будут полностью удалены. В приведенном ниже примере кода текстовый документ открывается для дополнительной записи, после чего в него помещается строковый литерал “ world” с пробелом вначале. Таким образом в test.txt будет располагаться «hello world». После всего этого не нужно забывать об обязательном закрытии файла.
file = open("test.txt", "a") file.write(" world") file.close()
Именно так осуществляется самая простая процедура записи данных в текстовый файл. Стоит заметить, что язык программирования Python содержит массу дополнительных средств для более продвинутой работы с документами, которые также включают и улучшенную запись.
Запись бинарных данных
При записи бинарных данных, следует использовать режим «wb». Вот пример записи строки в кодировке utf8:
f = open('test.dat', 'wb') f.write(bytes('строка', 'utf8')) f.close()
Чтение
Для чтения информации из файла в Python 3, следует вызывать метод read через объект, который ссылается на существующий документ. Также необходимо не забывать указывать «r» в качестве второго параметра функции open при открытии текстового файла.
В следующем примере read возвращает информацию из test.txt в метод print, который затем выводит сведения на экран. Как и прежде, программа завершается закрытием документа при помощи метода close. Метод read также может принимать целочисленный параметр, который используется для передачи количества символов для чтения. К примеру, введя 5, программа прочитает только hello.
try: file = open("test.txt", "r") print(file.read()) file.close() except FileNotFoundError: print('Not found') except IOError: print('Something else')
Обратите внимание, что при открытии может возникнуть ошибка. Например, если указанный файл не найден. Поэтому нам пришлось обработать исключение. В Python можно воспользоваться конструкцией with, в таком случае не надо будет обрабатывать исключения и даже закрывать файл. Её рассмотрим ниже.
Есть еще один момент: нельзя делать закрытие в секции finally блока try. Если произойдет исключение при открытии файла, то в секции finally будет ошибка.
Чтение бинарных данных
В случае, если данные бинарного вида — следует использовать «rb» в функции open. Рассмотрим пример:
try: f = open("test.dat", "rb") b = f.read(1) str = "" while True: b = f.read(1) if b == b'': break str += b.hex() print(str) f.close() except IOError: print('error') 81d182d180d0bed0bad0b0
Здесь побайтно читается файл. Каждый байт приводит к строковому виду в шестнадцатеричном представлении. С помощью функции print выводится результирующая строка.
with as
Чтобы немного автоматизировать обработку текстовых файлов, рекомендуется использовать связку операторов with as. Благодаря им пропадает необходимость в вызове метода close для документа, который необходимо закрыть, поскольку это происходит автоматически. Все это демонстрируется в следующем фрагменте кода, где происходит считывание данных из test.txt. Как обычно, метод print используется для вывода строковой информации на экран.
with open('test.txt', 'r') as file: print(file.read())
Более того, в этом случае не нужно обрабатывать исключение. Если файла с указанным именем нету, то строки с вложенным кодом в операторе with выполняться не будут.
С помощью рассмотренных возможностей языка программирования Python, пользователь в состоянии достаточно легко выполнять основные операции по работе с чтением и записью информации в файлы.
