2015-06-29 7 views
2

У меня есть текстовый файл с именем android.txt (с парой тысяч строк), которые я пытаюсь открыть с питоном, мой код:Python, не может открыть текстовый файл

f = open('/home/user/android.txt', 'r') 

Но когда я «м делает:

f.read() 

результат:

'' 

Я CHMOD 777 /home/user/android.txt, но результат остается тот же

+0

Попробуйте использовать 'f.readlines()' – Bharadwaj

+3

Дубликат [это] (http://stackoverflow.com/questions/10571399/python-not-reading-file-returning-empty-result) – Vaulstein

+0

шоу [* complete * (но минимальный) пример кода] (http://stackoverflow.com/help/mcve). Вы читаете из файла несколько раз, прежде чем печатать его? (например, 'f.read(); print (repr (f.read()))' - не делайте этого) – jfs

ответ

1

Результат будет пустая строка не пустой список, и это потому, что ваш размер файла больше your memory (на основе вашей версии python и вашей машины)! Таким образом, python не присваивает содержимое файла переменной!

Для устранения этой проблемы вам необходимо обработать файл по строкам.

with open('/home/user/android.txt') as f : 
    for line in f: 
     #do stuff with line 
+2

нет такой вещи, как * «емкость объекта строки python» *. Вы можете получить 'MemoryError', но вы не получите пустую строку только потому, что файл слишком велик, чтобы вписаться в память. – jfs

+0

@ J.F.Sebastian Действительно. Я просто хотел сделать его понятным для OP. На самом деле это память и может использоваться для любого объекта! – Kasramvd

2

Вы не видите содержимое файла, просто прочитав его.

Например, вы могли бы сделать что-то вроде этого:

with open('/home/user/android.txt') as infp: 
    data = infp.read() 

print data # display data read 

Использование с также закрыть файл для вашего автоматически

+0

Я просто попытался, но распечатать данные возвращает пустую строку – woshitom

+0

Тогда вам следует обратиться к решению Kasra для в следующей части проблемы – Vaulstein

Смежные вопросы