f.write
требует строку в качестве аргумента, в отличие от print
, которая будет принимать любое количество объектов любого вида и автоматически преобразовывать их все в строки для вас и соедините их с настраиваемыми разделителями и настраиваемым окончанием и т. д.
Другими словами, print
умный и дружелюбный; write
- функция низкого уровня. Таким образом, чтобы сделать эту работу с write
, вам нужно выполнить преобразование вручную.
f.write(str(words))
Но вы также можете просто использовать print
вместо вызова f.write
:
print(words, file=f)
Обратите внимание, что это не совсем то же самое. Когда вы звоните print
, по умолчанию он ставит новую строку в конце. Итак, этот код:
print('number of words ')
print(words)
… выведет две отдельные строки:
number of words
3
И также этот код:
print('number of words ', file=f)
print(words, file=f)
… добавит в файл те же две отдельные строки.