Печать
Встроенная функция print()
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
Печать объектов в текстовый поток, разделенных символом sep, за которым следует end.
sep, end, file и flush, если они присутствуют, должны быть обязательно указаны.
Все аргументы, не являющиеся ключевыми словами, преобразуются в строки, как это делает str(), и записываются в поток, разделенные символом sep, за которым следует end.
И sep, и end должны быть строками; они также могут быть None, что означает использование значений по умолчанию. Если объекты не заданы, print() просто запишет end.
Аргумент file должен быть объектом с методом write(string);
если он отсутствует или None, будет использоваться sys.stdout.
Поскольку печатные аргументы преобразуются в текстовые строки, print() нельзя использовать с двоичными файловыми объектами.
Для этого используйте file.write(...).
Если аргумент ключевого слова flush имеет значение true, поток принудительно сбрасывается.
Работа с файлами (ввод/вывод) в Python: открытие, чтение, запись, закрытие и другие операции
Существует два типа файлов:
- Текстовые
- Бинарные
Текстовые файлы
Это файлы хранящие последовательность символов, которые понимает человек и редактируют простые текстовые редакторы.
Бинарные файлы
Бинарные файлы - в большинстве случаев нечитаемы в простых тектовых редакторах и это последовательность битов.
Операции с файлом:
- Открытие файла
- Выполнение записи или чтения
- Закрытие файла
Открытие файла
Используется встроенная функция open()
функция open() возвращает file object и чаще всего используется с двумя аргументами: open(filename, mode)
file = open('workfile', 'w')
Первый аргумент - это строка, содержащая имя файла.
Второй аргумент - это еще одна строка, содержащая несколько символов, описывающих способ использования файла:
- "r", когда файл будет только считываться
- "w" только для записи (существующий файл с тем же именем будет удален)
- "x" эксклюзивное создание, исключение FileExistsError, если файл уже существует
- "a" открывает файл для добавления; любые данные, записанные в файл, автоматически добавляются в конец.
- "r+" открывает файл как для чтения, так и для записи. Аргумент mode является необязательным; 'r' будет приниматься, если он опущен
- "t" символ текстового режима
- "b" символ двоичного режима: теперь данные считываются и записываются в виде байтовых объектов. Этот режим следует использовать для всех файлов, которые не содержат текста.
Обычно файлы открываются в текстовом режиме, что означает, что вы читаете и записываете строки из файла и в файл, которые закодированы в определенной кодировке. Если кодировка не указана, значение по умолчанию зависит от платформы
В текстовом режиме при чтении по умолчанию используется преобразование окончаний строк, зависящих от платформы (\n в Unix, \r\n в Windows) просто в \n
При записи в текстовом режиме по умолчанию используется преобразование вхождений \n обратно в окончания строк, зависящие от платформы.
for line in file:
print(line)
Рекомендуется использовать ключевое слово with при работе с файловыми объектами (Оператор with создает диспетчер контекста). Преимущество заключается в том, что файл правильно закрывается после завершения его набора, даже если в какой-то момент возникает исключение.
with open( 'workfile.txt') as file:
for line in file:
print(line)
Если вы не используете ключевое слово with, то вам следует вызвать file.close(), чтобы закрыть файл и немедленно освободить все системные ресурсы, используемые им.
Некоторые методы файловых объектов
Для: file - объект файла
file.close() - закрывает файл
file.read([size]) считывает из файла не более size байтов
file.readline() читает одну строку из файла. Символ новой строки \n сохраняется в считанной строке
file.readlines() читает файл построчно, пока не достигнет конца файла - EOF, и возвращает список, содержащий строки файла
file.write() записывает строку str в файл file. Метод возвращает целое число - количество записанных байт
file.writelines() записывает последовательность строк в файл file.