🐍 Укус питона 🐍
3.07K subscribers
513 photos
2 videos
267 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Выберите правильный способ получения значения ключа отметок.
Anonymous Quiz
11%
m = student.get(2)
81%
m = student.get('marks')
9%
m = student[2])
Файлы CSV. Продолжение.

Для чтения из файла нам наоборот нужно создать объект reader:

При получении объекта reader мы можем в цикле перебрать все его строки, смотрим вторую часть примера:

🐍 Укус питона // 💬 Чат // #теория #файлы #CSV
Работа со словарями.

В примере выше каждая запись или строка представляла собой отдельный список, например, ["Sam", 31]. Но кроме того, модуль csv имеет специальные дополнительные возможности для работы со словарями. В частности, функция csv.DictWriter() возвращает объект writer, который позволяет записывать в файл. А функция csv.DictReader() возвращает объект reader для чтения из файла. Например:

Запись строк также производится с помощью методов writerow() и writerows(). Но теперь каждая строка представляет собой отдельный словарь, и кроме того, производится запись и заголовков столбцов с помощью метода writeheader(), а в метод csv.DictWriter в качестве второго параметра передается набор столбцов.

При чтении строк, используя названия столбцов, мы можем обратиться к отдельным значениям внутри строки: row["name"].

🐍 Укус питона // 💬 Чат // #теория #файлы #CSV
Что выведет этот код?
Anonymous Quiz
7%
Error
5%
None
73%
abcd
15%
[‘a’,’b’,’c’,’d’]
Бинарные файлы.

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

При чтении мы получаем файл в виде набора байт, и наоборот, при записи в метод write() передается набор байт. Например, скопируем файл:

Считывает файл, путь к которому хранится в переменной FILENAME. В данном случае это файл изображения "forest.png". Считанные байты помещаются в список image_data. Затем этот список записываем в файл с именем NEWFILENAME. Таким образом, мы скопируем содержимое одного файла в другой.

🐍 Укус питона // 💬 Чат // #теория #файлы #бинарные
Что выведет этот код?
Anonymous Quiz
68%
48
4%
14
7%
64
21%
Ничего из этого.
Модуль pickle.

Также для работы с бинарными файлами Python предоставляет специальный встроенный модуль pickle, который упрощает работу с бинарными файлами. Этот модуль предоставляет два метода:
• dump(obj, file): записывает объект obj в бинарный файл file
• load(file): считывает данные из бинарного файла в объект
Допустим, надо надо сохранить значения двух переменных:

🐍 Укус питона // 💬 Чат // #теория #файлы #бинарные
Что выведет этот код?
Anonymous Quiz
21%
type \'int\'
26%
type \'type\'
47%
Error
6%
0
Модуль pickle. Продолжение.

С помощью функции dump последовательно записываются два объекта. Поэтому при чтении файла также последовательно посредством функции load мы можем считать эти объекты. Консольный вывод программы:

В зависимости от того, какой объект мы записывали функцией dump, тот же объект будет возвращен функцией load при считывании файла.

🐍 Укус питона // 💬 Чат // #теория #файлы #бинарные
Каков вывод следующего сегмента?
Anonymous Quiz
64%
A
4%
B
16%
a
16%
Error
Модуль shelve.

Для работы с бинарными файлами в Python может применяться еще один модуль - shelve. Он сохраняет объекты в файл с определенным ключом. Затем по этому ключу может извлечь ранее сохраненный объект из файла. Процесс работы с данными через модуль shelve напоминает работу со словарями, которые также используют ключи для сохранения и извлечения объектов.

Для открытия файла модуль shelve использует функцию open():

Где параметр flag может принимать значения, смотрим в пример:

🐍 Укус питона // 💬 Чат // #теория #файлы #бинарные
🔵 Практический интенсив «Python-разработчик: основы за 2 дня» — 23-24 апреля в 19:00 мск.

О перспективах направления Python и многом другом расскажет Грегори Салиба, старший разработчик ЭквантаЛаб с опытом в разработке более 3 лет. 

На вебинаре вы:

☑️ Самостоятельно напишете Telegram-бота с карточными мини-играми.
☑️ Познакомитесь с синтаксисом языка и сферами его применения.
☑️ Узнаете, чего ждут работодатели от junior-разработчиков и что делать, чтобы найти работу без опыта.

Переходите по ссылке, чтобы зарегистрироваться на бесплатный практический интенсив и забрать подарки 🎁