Не читаются строчки в текстовом файле

Пытаюсь прочитать каждую строчку по отдельности в текстовом файле.
Но в результате выдает пустую строчку.

Например:

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}]")
→ Ссылка