ждущий пустой - PullRequest
       3

ждущий пустой

2 голосов
/ 10 февраля 2011

Я делаю все это в переводчике ..

loc1 = '/council/council1'
file1 = open(loc1, 'r')

на данный момент я могу сделать file1.read (), и он выводит содержимое файла в виде строки на стандартный вывод

но если я добавлю это ..

string1 = file1.read()

строка 1 возвращается пустой ... я понятия не имею, что я могу делать неправильно. это кажется самой основной вещью!

Если я снова введу file1.read (), вывод на стандартный вывод будет просто пустой строкой. так что, так или иначе, я теряю свой файл, когда пытаюсь создать строку с file1.read ()

Ответы [ 4 ]

5 голосов
/ 10 февраля 2011

Вы можете прочитать файл только один раз.После этого текущая позиция чтения находится в конце файла.

Если вы добавите file1.seek(0) перед повторным чтением, вы сможете снова прочитать содержимое.Однако лучший подход - это прочитать строку в первый раз, а затем сохранить ее в памяти:

loc1 = '/council/council1'
file1 = open(loc1, 'r')
string1 = file1.read()
print string1
2 голосов
/ 10 февраля 2011

Вы не потеряете его, вы просто перемещаете указатель смещения в конец файла и пытаетесь прочитать еще какие-то данные.Поскольку это конец файла, больше нет доступных данных, и вы получите пустую строку.Попробуйте открыть файл или найти нулевую позицию:

f.read()
f.seek(0)
f.read()
0 голосов
/ 04 августа 2016

Использование with - лучший синтаксис, поскольку он закрывает соединение с файлом после его использования (начиная с python 2.5):

with open('/council/council1', 'r') as input_file:
   text = input_file.read()
print(text)
0 голосов
/ 10 февраля 2011

убедитесь, что ваше местоположение указано правильно.У вас действительно есть каталог с именем /council в корневом каталоге (/)?также используйте os.path.join(), чтобы создать свой путь

loc1 = os.path.join("/path","dir1","dir2")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...