Python file.read () в Ubuntu - PullRequest
       21

Python file.read () в Ubuntu

1 голос
/ 07 июня 2009

Функция Python file.read() ничего не читает. Он всегда возвращает '' независимо от того, что находится внутри файла. Что это может быть? Я знаю, что это должно быть что-то прямое, но я не могу понять это.

UPD : я пробовал с режимами 'r' и 'w +'.

UPD : Код был:

    >>> file = open('helloworld', 'w+')
    >>> file.read()
    ''

Решение : Мне пришло в голову, что, хотя файл доступен для чтения в режиме 'w +', Python обрезает его после открытия. Вместо этого следует использовать режим «r» (или «r +»). Спасибо всем.

1 Ответ

2 голосов
/ 07 июня 2009

Предостережение: я просто догадываюсь о поведении, которое не «работает»:

Если вы работаете в интерпретаторе Python,
и вы делаете что-то вроде этого:

>>> f = open('myfile.txt', 'r')
>>> f.read()

... вы получите весь файл, напечатанный на экране.

Но если вы сделаете это снова:

>>> f.read()
''

... вы получите пустую строку.

Итак, если вы этого еще не сделали, возможно, попробуйте перезапустить ваш переводчик.

Из документации :

"Чтобы прочитать содержимое файла, вызовите f.read (размер), который считывает некоторое количество данных и возвращает их в виде строки. Размер - необязательный числовой аргумент. Если размер не указан или отрицателен, все содержимое файл будет прочитан и возвращен; это ваша проблема, если файл в два раза больше памяти вашего компьютера. В противном случае считывается и возвращается максимум размер байтов. Если достигнут конец файла, возвращается f.read () пустая строка (""). "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...