- •Возможности языка python
- •Скачать Python
- •Установка Python на Windows
- •Установка Python на linux системы (ubuntu, linux mint и другие)
- •Первая программа. Среда разработки IDLE
- •Синтаксис языка Python
- •Синтаксис
- •Несколько специальных случаев
- •Инструкция if-elif-else, проверка истинности, трехместное выражение if/else
- •Синтаксис инструкции if
- •Проверка истинности в Python
- •Трехместное выражение if/else
- •Циклы for и while, операторы break и continue, волшебное слово else
- •Цикл while
- •Цикл for
- •Оператор continue
- •Оператор break
- •Волшебное слово else
- •Ключевые слова, модуль keyword
- •Ключевые слова
- •Модуль keyword
- •Встроенные функции
- •Встроенные функции, выполняющие преобразование типов
- •Другие встроенные функции
- •Числа: целые, вещественные, комплексные
- •Целые числа (int)
- •Комплексные числа (complex)
- •Работа со строками в Python: литералы
- •Литералы строк
- •Строки. Функции и методы строк
- •Базовые операции
- •Другие функции и методы строк
- •Форматирование строк. Метод format
- •Форматирование строк с помощью метода format
- •Списки (list). Функции и методы списков
- •Что такое списки?
- •Функции и методы списков
- •Индексы и срезы
- •Взятие элемента по индексу
- •Срезы
- •Кортежи (tuple)
- •Зачем нужны кортежи, если есть списки?
- •Как работать с кортежами?
- •Операции с кортежами
- •Словари (dict) и работа с ними. Методы словарей
- •Методы словарей
- •Множества (set и frozenset)
- •Что такое множество?
- •frozenset
- •Функции и их аргументы
- •Именные функции, инструкция def
- •Аргументы функции
- •Анонимные функции, инструкция lambda
- •Исключения в python. Конструкция try - except для обработки исключений
- •Байты (bytes и bytearray)
- •Bytearray
- •Файлы. Работа с файлами.
- •Чтение из файла
- •Запись в файл
- •With ... as - менеджеры контекста
- •PEP 8 - руководство по написанию кода на Python
- •Содержание
- •Внешний вид кода
- •Пробелы в выражениях и инструкциях
- •Комментарии
- •Контроль версий
- •Соглашения по именованию
- •Общие рекомендации
- •Документирование кода в Python. PEP 257
- •Что такое строки документации?
- •Однострочные строки документации
- •Многострочные строки документации
- •Работа с модулями: создание, подключение инструкциями import и from
- •Подключение модуля из стандартной библиотеки
- •Использование псевдонимов
- •Инструкция from
- •Создание своего модуля на Python
- •Объектно-ориентированное программирование. Общее представление
- •Инкапсуляция, наследование, полиморфизм
- •Инкапсуляция
- •Наследование
- •Полиморфизм
- •Перегрузка операторов
- •Перегрузка арифметических операторов
- •Декораторы
- •Передача декоратором аргументов в функцию
- •Декорирование методов
- •Декораторы с аргументами
- •Некоторые особенности работы с декораторами
- •Примеры использования декораторов
- •Часто задаваемые вопросы
- •Почему я получаю исключение UnboundLocalError, хотя переменная имеет значение?
- •Каковы правила для глобальных и локальных переменных в Python?
- •Почему анонимные функции (lambda), определенные в цикле с разными значениями, возвращают один и тот же результат?
- •Как организовать совместный доступ к глобальным переменным для нескольких модулей?
- •Как правильнее использовать импортирование?
- •Почему значения по умолчанию разделяются между объектами?
- •Как передать опциональные или именованные параметры из одной функции в другую?
- •Как создавать функции более высокого порядка?
- •Как скопировать объект в Python?
- •Как узнать доступные методы и атрибуты объекта?
- •Как можно узнать имя объекта?
- •Можно ли писать обфусцированные однострочники?
- •Почему -22 // 10 равно -3?
- •Как можно изменить строку?
- •Как использовать строки для вызова функций/методов?
- •Как удалить все символы новой строки в конце строки?
- •Как удалить повторяющиеся элементы в списке?
- •Как создать многомерный список?
Глава 21
Файлы. Работа с файлами.
В данной статье мы рассмотрим встроенные средства python для работы с файлами: открытие / закрытие, чтение и запись.
Итак, начнем. Прежде, чем работать с файлом, его надо открыть. С этим замечательно справится встроенная функция open:
f = open('text.txt', 'r')
У функции open много параметров, они указаны в статье “Встроенные функции”, нам пока важны 3 аргумента: первый, это имя файла. Путь к файлу может быть относительным или абсолютным. Второй аргумент, это режим, в котором мы будем открывать файл.
Ре- |
Обозначение |
жим |
|
‘r’ |
открытие на чтение (является значением по умолчанию). |
‘w’ |
открытие на запись, содержимое файла удаляется, если файла не существует, |
|
создается новый. |
‘x’ |
открытие на запись, если файла не существует, иначе исключение. |
‘a’ |
открытие на дозапись, информация добавляется в конец файла. |
‘b’ |
открытие в двоичном режиме. |
‘t’ |
открытие в текстовом режиме (является значением по умолчанию). |
‘+’ |
открытие на чтение и запись |
Режимы могут быть объединены, то есть, к примеру, ‘rb’ - чтение в двоичном режиме. По умолчанию режим равен ‘rt’.
И последний аргумент, encoding, нужен только в текстовом режиме чтения файла. Этот аргумент задает кодировку.
21.1 Чтение из файла
Открыли мы файл, а теперь мы хотим прочитать из него информацию. Для этого есть несколько способов, но большого интереса заслуживают лишь два из них.
Первый - метод read, читающий весь файл целиком, если был вызван без аргументов, и n символов, если был вызван с аргументом (целым числом n).
64
Самоучитель Python, Выпуск 0.2
>>>f = open('text.txt')
>>>f.read(1)
'H'
>>> f.read()
'ello world!\nThe end.\n\n'
Ещё один способ сделать это - прочитать файл построчно, воспользовавшись циклом for:
>>>f = open('text.txt')
>>>for line in f:
... line
...
'Hello world!\n' '\n'
'The end.\n' '\n'
21.2 Запись в файл
Теперь рассмотрим запись в файл. Попробуем записать в файл вот такой вот список:
>>>l = [str(i)+str(i-1) for i in range(20)]
>>>l
['0-1', '10', '21', '32', '43', '54', '65', '76', '87', '98', '109', '1110', '1211', '1
Откроем файл на запись:
>>> f = open('text.txt', 'w')
Запись в файл осуществляется с помощью метода write:
>>> for index in l:
... f.write(index + '\n')
...
4
3
3
3
3
Для тех, кто не понял, что это за цифры, поясню: метод write возвращает число записанных символов.
После окончания работы с файлом его обязательно нужно закрыть с помощью метода close:
>>> f.close()
21.2. Запись в файл |
65 |
Самоучитель Python, Выпуск 0.2
Теперь попробуем воссоздать этот список из получившегося файла. Откроем файл на чтение (надеюсь, вы поняли, как это сделать?), и прочитаем строки.
>>>f = open('text.txt', 'r')
>>>l = [line.strip() for line in f]
>>>l
['0-1', '10', '21', '32', '43', '54', '65', '76', '87', '98', '109', '1110', '1211', '1
>>> f.close()
Мы получили тот же список, что и был. В более сложных случаях (словарях, вложенных кортежей и т. д.) алгоритм записи придумать сложнее. Но это и не нужно. В python уже давно придумали средства, такие как pickle или json, позволяющие сохранять в файле сложные структуры.
21.2. Запись в файл |
66 |