Функция Python file.read()
ничего не читает. Он всегда возвращает ''
независимо от того, что внутри файла. Что это может быть? Я знаю, что это должно быть что-то прямолинейное, но я не могу понять.
UPD. Я пытался использовать режимы "r" и "w +".
UPD: код был:
>>> file = open('helloworld', 'w+')
>>> file.read()
''
Решение: мне пришло в голову, что, хотя файл доступен для чтения в режиме "w +", Python усекает его после открытия. Вместо этого следует использовать режим "r" (или "r +" ). Спасибо всем.
Предостережение: я просто догадываюсь о поведении, которое не работает:
Если вы работаете в интерпретаторе Python,
и вы делаете что-то вроде этого:
>>> f = open('myfile.txt', 'r')
>>> f.read()
... вы получите весь файл, напечатанный на экране.
Но если вы сделаете это снова:
>>> f.read()
''
... вы получаете пустую строку.
Итак, если вы еще этого не сделали, попробуйте перезапустить ваш интерпретатор.
Из документация:
"Чтобы прочитать содержимое файла, вызовите f.read(size), который читает некоторое количество данных и возвращает его как строку. size - необязательный числовой аргумент. Когда размер опущен или отрицателен, все содержимое файл будет считан и возвращен, его проблема, если файл в два раза больше, чем память вашего компьютера. В противном случае считываются и возвращаются в большинстве байтов размера. Если конец файла достигнут, f.read() вернется пустую строку (" ").