fileobj = open( filename, mode)
Кратко поясню фрагменты этого вызова:
fileobj — это объект файла, возвращаемый функцией open();
filename — это строка, представляющая собой имя файла;
mode — это строка, указывающая на тип файла и действия, которые вы хотите
над ним произвести.
Первая буква строки mode указывает на операцию:
r означает чтение;
w означает запись. Если файла не существует, он будет создан. Если файл суще-
ствует, он будет перезаписан;
x означает запись, но только если файла еще не существует;
a означает добавление данных в конец файла, если он существует.
Вторая буква строки mode указывает на тип файла:
t (или ничего) означает, что файл текстовый;
b означает, что файл бинарный.
После открытия файла вы вызываете функции для чтения или записи данных,
они будут показаны в следующих примерах.
Наконец, вам нужно закрыть файл.
Создадим файл, содержащий одну строку, в одной программе и считаем его
в другой.
Запись в текстовый файл
с помощью функции write()
По какой-то причине существует не так уж много лимериков о специальной теории
относительности. В качестве источника данных придется использовать всего один:
>>> poem = '''There was a young lady named Bright,
... Whose speed was far faster than light;
... She started one day
... In a relative way,
... And returned on the previous night.'''
>>> len(poem)
150
212
Глава 8. Данные должны куда-то попадать
Следующий код записывает это стихотворение в файл 'relativity' с помощью
всего одного вызова:
>>> fout = open('relativity', 'wt')
>>> fout.write(poem)
150
>>> fout.close()
Функция write() возвращает число записанных байтов. Она не добавляет ни-
каких пробелов или символов новой строки, как это делает функция print(). С по-
мощью функции print() вы также можете записывать данные в текстовый файл:
>>> fout = open('relativity', 'wt')
>>> print(poem, file=fout)
>>> fout.close()
Отсюда возникает вопрос: какую функцию использовать — write() или print()?
По умолчанию функция print() добавляет пробел после каждого аргумента и сим-
вол новой строки в конце. В предыдущем примере она добавила символ новой
строки в файл relativity. Для того чтобы функция print() работала как функция