Функция read () Python возвращает пустую строку

Если я наберу это в Python:

open("file","r").read() 

иногда он возвращает точное содержимое файла в виде строки, а в других случаях возвращает пустую строку (даже если файл не пуст). Может кто-нибудь объяснить, от чего это зависит?

3 Solutions collect form web for “Функция read () Python возвращает пустую строку”

Когда вы достигаете конца файла (EOF), метод .read возвращает '' , поскольку больше нет данных для чтения.

 >>> f = open('my_file.txt') >>> f.read() # you read the entire file 'My File has data.' >>> f.read() # you've reached the end of the file '' >>> f.tell() # give my current position at file 17 >>> f.seek(0) # Go back to the starting position >>> f.read() # and read the file again 'My File has data.' 

Ссылки Doc: read() tell() seek()

Примечание. Если это происходит в первый раз, когда вы читаете файл, убедитесь, что файл не пуст. Если это не попытка поставить file.seek(0) перед read .

Из документации метода file.read() :

Пустая строка возвращается, когда EOF встречается немедленно.

Вы попали в конец файлового объекта, больше нет данных для чтения. Файлы сохраняют «текущую позицию», указатель на данные файла, который начинается с 0 и увеличивается при чтении dada.

См. file.tell() для чтения этой позиции и метод file.seek() для его изменения.

Есть еще одна проблема, и это значит, что сам файл может быть просочился, и только последний или даже никогда не был убран сборщиком мусора. Поэтому используйте оператор with:

 with open(...) as file: data = file.read() 

Это трудно усвоить для любого, у кого есть C-ish background (C, C ++, Java, C # и, возможно, другие), поскольку в отступе всегда создается новая область, и любые переменные, объявленные в этой области, недоступны для наружного. В Python это просто не так, но сначала вы должны привыкнуть к этому стилю …

  • Реализация использования 'with object () как f' в пользовательском классе в python
  • Как распознать специальный символ eol, когда я его вижу, используя Python?
  • Открыт файл: этот плохой стиль Python?
  • Как принимать имена файлов и файловые объекты в функциях Python?
  • Пользовательский итератор Python: закройте файл на StopIteration
  • Python Mock - Издевается несколько открытых
  • Определите все файлы, которые читаются и записываются из записной книжки ipython.
  • Проверка существования файла на удаленном SSH-сервере с использованием Python
  •  
    Interesting Posts for Van-Lav

    Как рассчитать кратчайшее (геодезическое) расстояние между двумя прилагательными в WordNet с помощью Python NLTK?

    Пример использования msilib для создания .msi-файла из модуля python

    Как сохранить результат выполнения команды оболочки в переменной в python?

    Ошибка значения: значение истины неоднозначно

    Как вычислить, какие точки данных остаются за перекрестком?

    Безопасно ли хранить мой «следующий» URL-адрес в подписанном cookie и перенаправлять на него беззаботным?

    Отслеживать изменения в списках и словарях на python?

    Получить количество строк в таблице с помощью SQLAlchemy

    Правильный способ остановки асинхронных задач

    Как извлечь схему для файла avro в python

    Есть ли способ провести развертывание развертывания в файлах ткани?

    Почему Python 3.1 медленнее, чем 2.6 для этого кода?

    numpy: syntax / idiom для массива (n,) для массива (n, 1)?

    Как разобрать html, который включает javascript-код

    Открытие / запуск файла Excel из python

    Python - лучший язык программирования в мире.