Не читаются строчки в текстовом файле
Пытаюсь прочитать каждую строчку по отдельности в текстовом файле.
Но в результате выдает пустую строчку.
Например:
ids_db=open(file_name, 'r')
for line in ids_db:
lines_count+=1
for i in range(lines_count):
id_from_db=ids_db.readline()
get_friends_list=vk.friends.get(user_id=id_from_db, order='id', v=5.103)
print(id_from_db)
Ответы (2 шт):
Автор решения: Alpensin
→ Ссылка
Лучше так:
with open(file_name, 'r') as ids_db:
for id_from_db in ids_db.readlines():
get_friends_list=vk.friends.get(user_id=id_from_db, order='id', v=5.103)
print(id_from_db)
Автор решения: MaxU
→ Ссылка
Вы столкнулись с проблемой известной как "exhausted iterator".
File descriptor (указатель файла) ids_db - является итерируемым объектом. После первого цикла:
for line in ids_db:
lines_count+=1
вы проитерировались до конца файла. Во втором цикле вы пытаетесь читать файл в тот момент когда указатель файла указывает на его конец.
В общем случае можно заставить указатель указывать на начало файла:
ids_db.seek(0)
НО гораздо эффективнее проходить / итерировать по файлу всего один раз:
with open(file_name, 'r') as ids_db:
for line_no, id_from_db in enumerate(ids_db, 1):
get_friends_list=vk.friends.get(user_id=id_from_db, order='id', v=5.103)
print(f"parsed line [{line_no}] -> id: [{id_from_db}]")