Перейти к содержимому

Как записать список в файл python

  • автор:

Запись списка в txt файл в питоне

Собственно как записать результат работы функции в txt файл?

f = open( '***.txt', 'w' ) f.write( '. ' ) f.close() 

Отслеживать

48.6k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков

задан 3 ноя 2011 в 15:13

129 2 2 золотых знака 4 4 серебряных знака 12 12 бронзовых знаков

3 ответа 3

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

f.write("\n".join(list).join("\n")); 
for item in list: f.write("%s\n" % item) 
import pickle # Хороший вариант для не-string списков, т.к мы зайдействуем сериализацию # с помощью pickle. Можно сериализовать в json или, например, xml. pickle.dump(list, f) 

P.S Первый вариант хорош тем, что все действия выполняются в 1 строчку, но плох в плане того, что строчка конструируется целиком, и только лишь потом выполняется запись.

Как работать с файлами в Python

Как работать с файлами в Python

Программа на Python — это не только функционал, но и оптимальная система работы с файлами. Например, если вы пишете чат-бот, вам нужно загрузить в него готовые ответы в файле txt. Если вы сделали программу для обработки фото — здесь ваш код на Python должен быть готов обрабатывать файлы, которые загрузит в сервис пользователь. В этой статье разберемся, как работать с файлами на Python, какие для этого есть библиотеки и методы.

Освойте профессию
«Python-разработчик»

Что такое файл

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

Python-разработчик
Освойте Python, самый популярный язык программирования
3 383 ₽/мес 6 150 ₽/мес

dffsdd (3)

  • открытие;
  • операции чтения из файла и записи в файл;
  • закрытие.

Разберемся со всеми действиями по порядку.

Открытие файла на чтение и запись в Python

На компьютере файл надо открыть перед тем, как вносить в него изменения. Такое же правила действует и для Python: нужно открыть файл на чтение и запись. Без этапа открытия нельзя читать содержимое или изменять его. Открыть файл можно с помощью функции open() :

open(file, mode='rt')

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

Аргумент mode
Как работает
Чтение из файла
Открыть как текстовый файл
Запись в файл и создание файла, если его не существует
Запись в файл и вызовы исключения, если файла не существует
Открыть как двоичный файл
Запись в файл путем добавления новых значений в конец
Работа в режиме чтения и записи

Можно комбинировать режимы и использовать сразу несколько. К примеру, по умолчанию функция open() принимает аргумент rt . Это значит, что файл будет открыт в виде текстового документа для чтения. С помощью r+ и w+ можно открыть файл сразу для чтения и записи на Python. В первом случае несуществующие файлы будут создаваться, а во втором такое действие спровоцирует вызов исключения.

Если в Python надо открыть файл data.txt в виде текстового документа с правами для чтения, то для этого следует использовать следующий код:

f = open('data.txt')

При этом Python установит режим открытия файла по умолчанию. Если нужен другой режим, то следует передать в функцию аргументы mode:

f = open('data.txt', 'w+')

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

f = open('data.txt', 'w+') # действия с файлом f.close()

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

with open('data.txt', 'w+') as f: # действия с файлом

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

with open('data.txt', 'w+', encoding='utf-8') as f: # действия с файлом

Кодировку можно указать третьим параметром и при обычном способе открытия:

f = open('data.txt', 'w+', encoding='utf-8') # действия с файлом f.close()

Чтение файла

Чтение из файла Python можно реализовать с помощью функции read(), если он открыт в режиме чтения r . Синтаксис функции выглядит следующим образом:

file.read(size)

В строке выше file обозначает объект, с которым работаем, а size — количество символов для чтения. Если ничего не указать в качестве аргумента функции read() , то получится прочитать сразу все содержимое документа.

Для примера: создадим в проекте file.txt и запишем в него строку «Привет, Python!». Теперь прочитаем первые шесть символов из файла:

with open('file.txt', 'r', encoding='utf-8') as f: data = f.read(6) print(data)

Если запустить код, то Python выведет в консоль фразу «Привет» — это и есть первые шесть символов строки «Привет, Python!» в file.txt:

>>> Привет

Теперь отредактируем код. В этом примере не будем передавать никакие аргументы в функцию read() :

with open('file.txt', 'r', encoding='utf-8') as f: data = f.read() print(data) >>> Привет, Python!

В этом случае система выводит сразу все содержимое файла.

Содержимое файла можно считывать построчно. Убедимся в этом, отредактировав file.txt. Добавим в него список продуктов:

Морковь Сметана Мука Яблоки

Теперь прочитаем этот список с помощью функции readline() :

with open('file.txt', 'r', encoding='utf-8') as f: print(f.readline()) >>> Морковь

Python прочитал первую строку списка продуктов. Если вызвать функцию readline() несколько раз, то получится прочитать последующие строки файла:

with open('file.txt', 'r', encoding='utf-8') as f: print(f.readline()) print(f.readline()) print(f.readline()) print(f.readline()) >>> Морковь >>> Сметана >>> Мука >>> Яблоки

Более удобно последовательное чтение с помощью readline() можно реализовать в цикле:

with open('file.txt', 'r', encoding='utf-8') as f: for line in f: print(line) >>> Морковь >>> Сметана >>> Мука >>> Яблоки

Все строки файла можно прочитать с помощью метода readlines() , возвращающего содержимое в виде списка вместе со специальными символами:

with open('file.txt', 'r', encoding='utf-8') as f: data = f.readlines() print(data) >>> ['Морковь\n', 'Сметана\n', 'Мука\n', 'Яблоки']

Такое чтение можно реализовать и без метода readlines() , воспользовавшись конструктором списков list() :

with open('file.txt', 'r', encoding='utf-8') as f: data = list(f) print(data) >>> ['Морковь\n', 'Сметана\n', 'Мука\n', 'Яблоки']

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

Запись в файл на Python

Для записи файла в Python используется функция write() . В качестве аргумента ей следует передать строку, содержимое которой будет записано:

file.write(string)

Удалим все содержимое file.txt и запишем в него строку «Привет, Python!»:

with open('file.txt', 'a', encoding='utf-8') as f: data = 'Привет, Python!' f.write(data)

Обратите внимание, что в этом примере мы открыли файл в режиме a, что позволяет записывать новые строки в конец. Выполняем код, открываем файл — теперь в нем содержится строка «Привет, Python!».

В файл можно записать сразу список строк. Для этого применяется метод writelines() , которому в качестве аргумента надо передать сам список. В качестве примера создадим переменную со списком продуктов и запишем ее в file.txt:

with open('file.txt', 'a', encoding='utf-8') as f: grocery = ['Морковь', 'Яблоки', 'Мука', 'Молоко'] f.writelines(grocery)

Если выполнить код и проверить file.txt, то мы увидим единую строку без пробелов. Все дело в том, что метод writelines() не добавляет разделители строк автоматически. Нужно сделать это вручную, прописав \n каждому элементу списка:

with open('file.txt', 'a', encoding='utf-8') as f: grocery = ['Морковь\n', 'Яблоки\n', 'Мука\n', 'Молоко\n'] f.writelines(grocery)

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

Станьте разработчиком на Python и решайте самые разные задачи: от написания кода до автоматизации процессов

Управление указателем

В Python есть возможность явно задать позицию указателя в файле — для этого используется метод seek(). Узнать текущую позицию можно с помощью метода tell() .

Рассмотрим принципы работы с методами на примере. Откроем file.txt в режиме доступа r+ и запишем в него строку «0123456789ABCDEF»:

with open('file.txt', 'r+', encoding='utf-8') as f: f.write('0123456789ABCDEF')

Теперь прочитаем седьмой символ в строке. Для этого воспользуемся методом seek() для перемещения указателя. В качестве аргумента надо передать функции аргумент смещения в байтах. Вспомним, что нумерация строк начинается с нуля, а нам надо прочитать седьмой символ строки. Значит, укажем смещение в шесть байтов:

with open('file.txt', 'r+', encoding='utf-8') as f: f.write('123456789ABCDEF') f.seek(5) data = f.read(1) print(data) >>> 6

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

  • 0 — от начала файла;
  • 1 — от текущей позиции;
  • 2 — от конца файла.

Теперь прочитаем четвертый символ с конца строки:

with open('file.txt', 'r+b') as f: f.seek(-4, 2) data = f.read(1) print(data) >>> b'C'

Узнать байт позиции указателя можно с помощью метода tell() :

with open('file.txt', 'r+', encoding='utf-8') as f: f.write('123456789ABCDEF') f.read(5) print(f.tell())

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

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

Для работы с файловой системой на Python используют встроенная библиотека OS. Ее необходимо отдельно импортировать в код проекта, чтобы получить доступа к ее методам:

import os

Теперь узнаем с помощью Python текущий каталог. Делаем это с помощью метода getcwd() . В выводе метода получим путь к папке, в которой сейчас находимся:

import os print(os.getcwd()) >>> /Users/daniilshat/PycharmProjects/pythonProject

С помощью метода listdir() можно получить список с содержимым каталога. В качестве аргумента можно передать путь к директории; если этого не сделать, то система покажет содержимое текущего каталога:

import os # содержимое текущего каталога print(os.listdir()) # содержимое директории PycharmProjects print(os.listdir('/Users/daniilshat/PycharmProjects')) >>> ['file.txt', 'main.py', '.idea'] >>> ['.DS_Store', 'pythonProject', 'bot', 'love-couples']

Для создания новых директорий файлов в Python используют метод mkdir() . В качестве аргумента ему надо передать полный путь, включая название новой директории. Для примера создадим директорию Example в PycharmProjects:

import os # содержимое директории PycharmProjects до создания print(os.listdir('/Users/daniilshat/PycharmProjects')) os.mkdir('/Users/daniilshat/PycharmProjects/Example') # содержимое директории PycharmProjects после создания print(os.listdir('/Users/daniilshat/PycharmProjects')) >>> ['.DS_Store', 'pythonProject', 'bot', 'love-couples'] >>> ['.DS_Store', 'pythonProject', 'Example', 'bot', 'love-couples']

С помощью Python можно переименовывать файлы и директории. Для этого используется метода rename() , которому необходимо передать в качестве аргументов путь к старому и новым файлам. Переименуем директорию Example в New Example:

import os dir = '/Users/daniilshat/PycharmProjects' old_file = os.path.join(dir, 'Example') new_file = os.path.join(dir, 'New Example') # содержимое директории PycharmProjects до переименования print(os.listdir(dir)) os.rename(old_file, new_file) # содержимое директории PycharmProjects после переименования создания print(os.listdir(dir)) >>> ['.DS_Store', 'pythonProject', 'Example', 'bot', 'love-couples'] >>> ['.DS_Store', 'pythonProject', 'bot', 'New Example', 'love-couples']

Для удаления пустых директорий файлов в Python можно использовать метод rmdir() , а для удаления директории со всем содержимым — shutil.rmtree() . В качестве аргумента требуется передать путь к директории. Для примера удалим директорию New Example, которую недавно создали:

import os # содержимое директории PycharmProjects до удаления print(os.listdir('/Users/daniilshat/PycharmProjects')) os.rmdir('/Users/daniilshat/PycharmProjects/New Example') # содержимое директории PycharmProjects после удаления print(os.listdir('/Users/daniilshat/PycharmProjects')) >>> ['.DS_Store', 'pythonProject', 'bot', 'New Example', 'love-couples'] >>> ['.DS_Store', 'pythonProject', 'bot', 'love-couples']

Итог

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

Метод Что делает
os.getcwd() Узнать текущий каталог
os.listdir(path) Узнать список содержимого каталога
os.mkdir(path) Создать директорию
os.rename(old_file, new_file) Переименовать файл или директорию
os.rmdir(path) Удалить пустую директорию
shutil.rmtree(path) Удалить директорию со всем содержимым
file.read(size) Прочитать определенное количество символов из файла
file.readline() Прочитать строку из файла
file.readlines() Прочитать все строки из файла
file.write(string) Записать строку в файл
file.writelines(list) Записать список строк в файл
file.seek(int) Переместить указатель
file.tell() Узнать текущее положение указателя

Python-разработчик

Освойте Python с нуля. Подготовим к трудоустройству: дадим много практики, реальные проекты для портфолио, поможем с резюме. Лучшие студенты пройдут стажировки в проектах компаний-партнеров.

3 способа записи списка в файл на Python

Монитор Dell UltraSharp U4025QW поддерживает Thunderbolt 4 и частоту обновления 120 Гц

Favorite

Добавить в избранное

Главное меню » Язык программирования Python » 3 способа записи списка в файл на Python

3 способа записи списка в файл на Python

Краткое описание: В этой краткой статье демонстрируются три способа записи списка в файл на языке сценариев Python.

В предыдущем совете по написанию сценариев мы показали вам, как выполнять команды Shell в Python. В этой статье мы покажем вам несколько способов записи списка в файл на Python.

Запись списка в файл на Python

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

Метод 1: Запись списка в файл строка за строкой в ​​Python, используя print

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

Вот пример программы на Python для вашей справки:

MyList = ["Самара", "Сочи", "Мурманск", "Анапа"] MyFile = open ('output.txt', 'w')
for element in MyList: print >>MyFile, element MyFile.close()

Файл output.txt открывается в режиме записи. Цикл for в python повторяется для каждого элемента в списке. Команды печати записывают элемент в открытый файл.

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

Самара
Сочи
Мурманск
Анапа

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

В примерах файл был открыт в режиме записи с опцией ‘w’. Все предыдущее содержимое файла в этом режиме будет перезаписано.

Если вы хотите сохранить предыдущее содержимое файла, вы можете открыть файл в режиме добавления, используя опцию «a» вместо «w».

Способ 2: записать список в файл, используя функцию записи в Python

Теперь давайте посмотрим, как можно сохранить список в файл на Python. Мы собираемся использовать функцию Write().

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

Вот пример программы на Python:

MyList = ["Самара", "Сочи", "Мурманск", "Анапа"] MyFile=open('output.txt', 'w')
for element in MyList: MyFile.write(element) MyFile.write('\n') MyFile.close()

Обратите внимание, что элементы в списке не имеют символа новой строки. Вот почему мы добавляем символ новой строки ‘\ n’ после каждой итерации, чтобы элементы списка записывались в файл построчно. Если вы этого не сделаете, вы увидите все содержимое списка в одной строке.

Способ 3: записать все строки в файл одновременно, используя функцию writelines()

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

Вот простая программа:

MyList = ["Самара", "Сочи", "Мурманск", "Анапа"] MyFile = open ('output.txt', 'w') MyFile.writelines (MyList) MyFile.close ()

Если вы используете команду для просмотра файла в командной строке Linux , вот что вы увидите в выводе:

Это не самый красивый вывод. Но это точное содержание списка.

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

Здесь вы можете изменить сам список и добавить символ новой строки после каждого элемента. И теперь, если вы напечатаете список с помощью writelines(), вы получите вывод построчно.

Вот пример программы для этого:

MyList = ["Самара", "Сочи", "Мурманск", "Анапа"] MyFile = open ('output.txt', 'w') MyList = map (lambda x: x + '\ n', MyList) MyFile.writelines (MyList) MyFile.close ()

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Запись в файл Python. Перезапись файла Python

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

Сегодня поговорим о создании и записи файлов.

Создание файла, его открытие и закрытие

Работа с текстовым файлом в Python начинается с момента вызова функции open. Она принимает в качестве атрибутов путь к объекту на ПК и режим обработки. Вы можете указать абсолютный путь (это адрес размещения на жёстком диске) или относительный (речь идёт о координатах относительно папки проекта).

Что касается режима обработки файла, то при его выборе учитывайте его назначение («r» — для чтения, «w» — для записи). Таблица ниже позволит вам ознакомиться с режимами доступа к файлу в Python:

1-20219-89defb.png

А вот пример простейшего взаимодействия с текстовым документом:

 
file = open("otus.txt", "w") file.write("hello world") file.close()

Здесь функция open принимает относительный путь, открывая его для записи. При этом, если в папке файл otus.txt будет отсутствовать, метод open создает его автоматически, после чего откроет для него нужный режим обработки.

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

 
with open("otus.txt", "w") as file: file.write("hello world")

Метод write() для записи в файл в Python

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

Запись в файл построчно выполняется посредством записи нужной вам строки с последующей записью \n — символа перевода строки.

Давайте ещё раз посмотрим на запись в файл с помощью метода write(). Синтаксис:

 
my_file.write(string);
 
my_file = open("otus.txt", "w") my_file.write("Люблю Python!\nЭто крутой язык!") my_file.close()

Код, представленный выше, создаст файл otus.txt , записав в него указанную строку.

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

 
lines = ["one", "two", "three"] with open(r"C:\otus.txt", "w") as file: for line in lines: file.write(line + '\n')

Этот код позволит создать небольшой массив lines, содержащий три строковых элемента: «one», «two» и «three». Благодаря функции open и связке операторов with as произойдёт открытие текстового файла otus.txt в корневом каталоге жёсткого диска C. Далее произойдёт запись всех элементов списка с помощью write. Символ \n обеспечит, чтобы каждая запись была выполнена с новой строки.

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

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