Различия между версиями 2 и 3
Версия 2 от 2021-12-03 12:11:20
Размер: 3238
Редактор: FrBrGeorge
Комментарий:
Версия 3 от 2021-12-03 12:34:33
Размер: 3646
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 47: Строка 47:
'''TODO'''  1.#0 Почитать и прощёлкать
  * про файлы [[py3tut:inputoutput.html#reading-and-writing-files|в учебнике]]
  * про байтвовые строки [[py3doc:stdtypes.html#bytes|в документации]]
 1. Попробовать воспроизвести упражнения из лекции (см. видео)
 1. Задачи будут в следующий раз

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

TODO Оба раза, и на геологах, и на психологах, был неочевидный эффект: «ну, уж эта-то странноватая фигня под названием "файлы" нам точно не нужна!». Не хватает примитивного мотиватора из реал лайфа.

Байтовые строки

  • Строки в Python — не байты!
  • Байтовые строки — это bytes, или b"..."

    • Умеют всё то же, что и строки
    • Состоят из маленьких целых чисел — байтов — (не нужно ord()/chr())

      • Трюк b[i:i+1]

    • Буквами считаются только латинские

Нужны для представления любого набора байтов.

Есть ещё bytearray — это списки байтов (модифицируемые!)

Кодировки

Почему строки не годятся для для представления любого набора байтов?

  • Понятие кодировки, их историческое происхождение и разнообразие, в т. ч. для русского
    • Историческая подоплёка — не было интернетов
    • Unicode — сложная штука
    • UniView

  • В Python: какой-то свой извод Uncode (строго двухбайтовый)
  • В Linux обычно кодировка UTF-8

    • В Windows-е их в разных случаях три разных!
    • Это не Unicode!

  • ⇒ просто при вводе/выводе строки типа str уже происходит перекодирование

  • Примеры str.encode() и bytes.decode()

  • бНОПНЯ

Текстовые файлы

Файл — именованная область данных, имеющая для программы потоковую структуру

  1. Открытие файла на чтение или запись
    • open()

  2. Последовательный ввод или вывод
    • .read()/.readline()/.write() и print(…, file=)

  3. Закрытие файла

Всё время происходит перекодирование!

Кстати, стандартный ввод, вывод и вывод ошибок

Двоичные файлы

TODO Отсюда и далее пока см. LecturesCMC/PythonIntro2021/11_Files

Не забыть про seek()

Специализированные файлы

  • Сериализация — для складывания Python-объектов
  • С интерфейсом словаря (реализовано как БД) — бистрый поиск по ключу, по сути прямой доступ вместо последовательного

  • Ориентированные на формат библиотеки, например, zipfile

Д/З

  1. Почитать и прощёлкать
  2. Попробовать воспроизвести упражнения из лекции (см. видео)
  3. Задачи будут в следующий раз

Python/GeoPython2021/11_Files (последним исправлял пользователь FrBrGeorge 2021-12-03 12:34:33)