Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 161

write(), передайте ей два следующих аргумента:

 sep (разделитель, по умолчанию это пробел, ' ');

 end (символ конца файла, по умолчанию это символ новой строки, '\n').

Функция print() использует значения по умолчанию, если только вы не пере-

дадите ей что-то еще. Мы передадим ей пустые строки, чтобы подавить все лишние

детали, обычно добавляемые функцией print():

>>> fout = open('relativity', 'wt')

>>> print(poem, file=fout, sep='', end='')

>>> fout.close()

Если исходная строка большая, вы можете записывать в файл ее фрагменты до

тех пор, пока не запишете ее всю:

>>> fout = open('relativity', 'wt')

>>> size = len(poem)

>>> offset = 0

>>> chunk = 100

>>> while True:

... if offset > size:

... break

... fout.write(poem[offset:offset+chunk])

... offset += chunk

...

100

50

>>> fout.close()

Ввод информации в файлы и ее вывод из них

213

Этот код записал 100 символов за первую попытку и последние 50 символов —

за следующую.

Если файл relativity нам очень дорог, проверим, спасет ли режим х от его пере-

записывания:

>>> fout = open('relativity', 'xt')

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

FileExistsError: [Errno 17] File exists: 'relativity'

Вы можете использовать этот код вместе с обработчиком исключений:

>>> try:

... fout = open('relativity', 'xt')]

... fout.write('stomp stomp stomp')

... except FileExistsError:

... print('relativity already exists!. That was a close one.')

...

relativity already exists!. That was a close one.

Считываем данные из текстового файла

с помощью функций read(), readline() и readlines()

Вы можете вызвать функцию read() без аргументов, чтобы проглотить весь файл

целиком, как показано в следующем примере. Будьте осторожны, делая это с круп-

ными файлами, файл размером 1 Гбайт потребит 1 Гбайт памяти:

>>> fin = open('relativity', 'rt' )

>>> poem = fin.read()

>>> fin.close()