Как записать словарь в файл?
Или как json, но там, конечно, меньшее разнообразие типов, да и объекты классов просто так не запихнешь без предварительной сериализации.
14 июн 2019 в 14:03
@gil9red я думал добавить сохранение словаря в Json. Но не смотря на внешнее сходство, словарь и json объект ни одно и тоже, что только добавит путаницы в голову ТС.
14 июн 2019 в 14:20
- python
- python-3.x
- python-3.7
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Записать словарь в файл
Как записать словарь в json файл?
d = dict(address=i, latlon=, i], name=i, phones=i, working_hours= + ‘ до ‘ + i + s1 +.
Как записать значение в словарь в словаре
Здравствуйте, подскажите, как записать значение в словарь в словаре? Мне нужно записать, например.

Как записать большое число параметров функции в словарь?
Есть функция с 20-ю параметрами (это архитектура такая, а не я такой 🙂 ) Как оптимально и.
Надо записать словарь в csv файл
import csv data_a= data_b= with open("example1.csv") as file: out=csv.DictWriter(file,).
![]()
![]()
36829 / 19877 / 4166
Регистрация: 12.02.2012
Сообщений: 33,013
Записей в блоге: 13
е8а7ь, это не словарь, а список
Регистрация: 08.10.2019
Сообщений: 15
<
List = ['python',1,2,3,'hello world']
или словарь
{class 'str'>: ['python', 'hello world'], class 'int'>: [1, 2, 3]}
Добавлено через 4 минуты
И в файлы Вы записываете не словари, а списки, используя тип в виде имени файла.
Регистрация: 08.10.2019
Сообщений: 15
Там где List я ошибся, с помощью цикла я пробегаюсь по нему и составляю словарь
Нужен именно словарь
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
Сообщение от е8а7ь 
< Когда вы прочитаете файл, эти данные будут строкой. Парсить такое не очень удобно. Могу предложить два варианта: 1) хранить json; 2) использовать pickle. Регистрация: 08.10.2019 Конечно. А как иначе? Я не знаком с использованием питона для администрирования. Может можно создать файл с именем, которое мы имеем в виде строки? Так как ключ в словаре содержит имя типа в виде строки, то тогда можно автоматически создавать файл с именем типа в качестве имени файла. нужно создать файл, именем которого будет ключ, а в самом файле значения Содержимое файла будет не словарь, а просто список строк, которые без проблем можно записать в соответствующий файл, а потом прочитать из файла. Добавлено через 8 минут Добавлено через 18 минут Если использовать pickle,то имя файла все равно вручную придётся вводить? Можно использовать не pickle, а модуль shelve. Он использует в своей работе pickle, но предоставляет удобный сервис для создания словаря, который будет хранить файлы, где ключами будут имена файлов. Но при этом вручную, ничего не придется вводить, имя словаря (базы данных) одно и содержится в коде. Причем питон может работать с этим файлом как с обычным словарем питона (на самом деле он состоит из трех файлов, но в питоне Вы этого не видите и просто работаете, как бы с одним файлом имеющем одно название). И главное, как и в базах данных, для работы не нужно загружать весь словарь из файла, а можете брать только отдельные значения словаря по ключу (у Вас по имени файла). Добавлено через 33 минуты с режимом mode= ‘w’ — запись Добавлено через 14 минут Вытащить подстроку, заключенную в одинарные кавычки, можно разными способами. Затем вставить ее в качестве имени создаваемого файла. Есть скачанный словарь dictionary.pkl. Нужно записать данные из словаря в txt файл. То есть каждая пара ключа и значения должны записаться в отдельной строке и разделяться через запятую. Это часть словаря. На выходе должно получиться: 1 комментарий Простой 1 комментарий В Python, чтобы создать файл, надо его открыть в режиме записи ( ‘w’ , ‘wb’ ) или дозаписи ( ‘a’ , ‘ab’ ). Функция open() возвращает файловый объект. Без ‘b’ создается текстовый файл, представляющий собой поток символов. С ‘b’ — файл, содержащий поток байтов. В Python также существует режим ‘x’ или ‘xb’ . В этом режиме проверяется, есть ли файл. Если файл с определенным именем уже существует, он не будет создан. В режиме ‘w’ файл создается заново, старый при этом теряется. Если в функцию open() не передается второй аргумент, файл расценивается как текстовый и открывается на чтение. Попытка открыть на чтение несуществующий файл вызывает ошибку. Перехватить возникшее исключение можно с помощью конструкции try-except . Получить все данные из файла можно с помощью метода read() файлового объекта, предварительно открыв файл на чтение. При этом файловый объект изменяется и получить из него данные еще раз не получится. Если файл был открыт в текстовом режиме, то метод read() возвращает строку. В случае бинарного режима возвращается объект типа bytes . Методу read() может быть передан один аргумент, обозначающий количество символов (если файл был открыт как текстовый) или байт (если файл был открыт как бинарный) для чтения. Метод readline() позволяет получать данные построчно. Принимает аргумент — число байт или символов. Для построчного чтения данных из файла рекомендуется использовать цикл for : Метод readlines() считывает все строки и помещает их в список. Может принимать количество символов, но дочитывает строку до конца. Записать данные в файл можно с помощью метода write() , который возвращает число записанных символов или байтов. Если записываемые в текстовый файл данные не являются строкой, то их предварительно надо преобразовать в строку. С помощью метода writelines() можно записать в файл итерируемую последовательность. Метод tell() возвращает текущую позицию в файле. Позицию можно менять с помощью метода seek() . В случае бинарных файлов в метод seek() можно передавать второй аргумент, который указывает, с какого места выполняется смещение, указанное в первом аргументе: 0 (по умолчанию) — от начала файла, 1 — с текущей позиции, 2 — с конца. В Python следует закрывать файл для высвобождения системных ресурсов. Делается это с помощью метода close() файлового объекта. С помощью closed (не константа, а так называемый дескриптор, или описатель, данных) проверяют, закрыт файл или нет. Считается хорошей практикой использовать оператор with при обработке файловых объектов. После того как тело with завершит работу, файл автоматически будет закрыт. При работе with создается так называемый контекстный менеджер, представляющий собой особый объект. Благодаря ему сохраняются и восстанавливаются глобальные состояния, происходит блокировка и разблокировка ресурсов, закрываются открытые файлы и др. Пример копирования изображения: Модуль struct позволяет преобразовывать данные к бинарному виду и обратно.
Сообщений: 15
Если использовать pickle,то имя файла все равно вручную придётся вводить?
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
Конечно. А как иначе?
1727 / 967 / 199
Регистрация: 22.02.2018
Сообщений: 2,694
Записей в блоге: 6
Сообщение от ioprst 
Сообщение от е8а7ь 
е8а7ь, Если Вы в файлы хотите записывать словари, то тогда не понятно, что Вы хотите использовать в качестве имени файла, ведь в словаре будет несколько ключей. И который Вы собираетесь использовать в качестве имени файла? У Вас в условии задания путаница. Нужно четко определить, что Вам нужно.
Сообщение от е8а7ь 
Что то я ступил, у меня бывает. Файл с заданным именем создается инструкцией f = open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=Non) -> Объект файла
1 2 3 4 5 6 7 8 9
>>> x = "абвгд" >>> type(x) class 'str'> >>> t = type(x) >>> t class 'str'> >>> s = str(t) >>> s ""
То есть если есть необходимость можно написать код, который все это будет делать автоматически.Как преобразовать словарь в текстовый файл в python?
‘Sundar Ande’: 6400,
‘Mozhe Atkinson’: 2800,>
Ellen Abel,11000
Sundar Ande,6400
Mozhe Atkinson,2800
Чтение данных из файла и запись в файл
f2 = open("text2.txt", 'w')>>> f1 = open('text1.txt', 'w') >>> f2 = open('text1.txt', 'x') Traceback (most recent call last): File "", line 1, in FileExistsError: [Errno 17] File exists: 'text1.txt' >>> f3 = open('text1.txt', 'w')Чтение данных из файла
>>> f = open("text10.txt") Traceback (most recent call last): File "", line 1, in IOError: [Errno 2] No such file or directory: 'text10.txt'>>> try: . f = open("text10.txt") . except IOError: . print ("No file") . No file>>> f = open("text.txt") >>> f >>> fd = f.read() >>> fd1 = f.read() >>> fd 'Hello\n\tOne\n Two\nThree Four\nШесть!\n' >>> fd1 ''>>> f = open('text.txt', 'rb') >>> content = f.read() >>> type(content) >>> content b'HelloHello' >>> content[0] 72 >>> chr(content[0]) 'H'>>> f = open("text.txt") >>> fd = f.read(10) >>> fd1 = f.read(5) >>> fd 'Hello\n\tOne' >>> fd1 '\n T'>>> f = open("text.txt") >>> f.readline() 'Hello\n' >>> f.readline() '\tOne\n' >>> f.readline() ' Two\n'>>> f.readline(3) 'Thr' >>> f.readline(3) 'ee ' >>> f.readline(3) 'Fou' >>> f.readline(3) 'r\n' >>> f.readline(5) 'Шесть' >>> f.readline(5) '!\n'>>> f = open('text.txt') >>> for line in f: . print(line, end='') . Hello! The second line. >>> f.close()>>> f = open("text.txt") >>> fd = f.readlines() >>> fd ['Hello\n', '\tOne\n', ' Two\n', 'Three Four\n', 'Шесть!\n']>>> f = open("text.txt") >>> fd = f.readlines(3) >>> fd ['Hello\n'] >>> fd1 = f.readlines(6) >>> fd1 ['\tOne\n', ' Two\n']Запись данных в файл
>>> ft = open('text1.txt', 'w') >>> fb = open('text2.txt', 'wb') >>> t = 'Привет Мир!' >>> b = b'Hello World!' >>> type(t), type(b) (, ) >>> ft.write(t) 11 >>> fb.write(b) 12 >>> ft.close() >>> fb.close() >>> >>> import os.path >>> os.path.getsize('text1.txt') 20 >>> os.path.getsize('text2.txt') 12 >>> open('text2.txt').read() 'Hello World!'>>> a = [1, 2, 3, 4] >>> sa = str(a) >>> sa '[1, 2, 3, 4]' >>> f = open('mylist.txt', 'w') >>> f.write(sa) 12 >>> f.close() >>> >>> with open('mylist.txt') as f: . sa = f.read() . >>> sa '[1, 2, 3, 4]' >>> list(sa) # bad idea ['[', '1', ',', ' ', '2', ',', ' ', '3', ',', ' ', '4', ']'] >>> a = [int(i) for i in sa if i.isdigit()] >>> a [1, 2, 3, 4]>>> a = [1,2,3,4,5,6,7,8,9,0] >>> f = open("text2.txt",'w') >>> f.writelines("%s\n" % i for i in a) >>> f.close() >>> open("text2.txt").read() '1\n2\n3\n4\n5\n6\n7\n8\n9\n0\n' >>> print(open("text2.txt").read()) 1 2 3 4 5 6 7 8 9 0Смена позиции в файле
>>> f = open('text.txt') >>> f.tell() 0 >>> f.readline() 'Hello!\n' >>> f.tell() 7 >>> f.seek(5) 5 >>> f.read(1) '!' >>> f.tell() 6 >>> f.read() '\nThe second line.\n' >>> f.read() '' >>> f.seek(0) 0 >>> f.read() 'Hello!\nThe second line.\n'>>> f = open('text.txt', 'rb') >>> f.read() b'Hello!\nThe second line.\n' >>> f.seek(-6, 2) 18 >>> f.read(4) b'line' >>> f.seek(0) 0 >>> f.read(5) b'Hello' >>> f.seek(2, 1) 7 >>> f.read(3) b'The'Закрытие файла
>>> f = open('text.txt') >>> f.closed False >>> f.close() >>> f.closed True>>> with open('text.txt') as f: . print(f.read()) . HelloHello >>> f.closed True>>> with open('text.txt') as fr, open('text2.txt', 'w') as fw: . fw.write(fr.read()) . 10 >>> fw.closed True >>> with ( . open('text.txt') as fr, . open('text2.txt', 'w') as fw, . ): . fw.write(fr.read()) . 10Двоичные файлы
>>> f1 = open('flag.png', 'rb') >>> f2 = open('flag2.png', 'wb') >>> f2.write(f1.read()) 446 >>> f1.close() >>> f2.close()>>> f = open('text3.txt', 'wb') >>> f.write('3') Traceback (most recent call last): File "", line 1, in TypeError: 'str' does not support the buffer interface >>> d = struct.pack('>i',3) >>> d b'\x00\x00\x00\x03' >>> f.write(d) 4 >>> f.close() >>> f = open('text3.txt') >>> d = f.read() >>> d '\x00\x00\x00\x03' >>> struct.unpack('>i',d) Traceback (most recent call last): File "", line 1, in TypeError: 'str' does not support the buffer interface >>> f = open('text3.txt', 'rb') >>> d = f.read() >>> d b'\x00\x00\x00\x03' >>> struct.unpack('>i',d) (3,)