Цикл выполняется и появляется результат, но выдает ошибку

Я написал код с использованием python tesseract, который переводит номера телефонов с изображения в текст(изображения берутся со списка), и выводит их в порядковом значении:

for i in links:
    img = Image.open(i)
    text = pytesseract.image_to_string(img,lang=None, config='')
    for links in range(len(links)):
        print(str(links+1) + ". " + str(text))

Возникает ошибка:

Traceback (most recent call last):
  File "D:\pythonProject\test.py", line 13, in <module>
    for links in range(len(links)):
TypeError: object of type 'int' has no len()

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

1. 8 921 295-18-36

2. 8 921 295-18-36

3. 8 921 295-18-36

Traceback (most recent call last):
  File "D:\pythonProject\test.py", line 13, in <module>
    for links in range(len(links)):
TypeError: object of type 'int' has no len()

Ответы (2 шт):

Автор решения: mark

Я решил все простым break в первом блоке for:

for i in links:
    img = Image.open(i)
    text = pytesseract.image_to_string(img,lang=None, config='')
    for links in range(len(links)):
        print(str(links+1) + ". " + str(text))
    break
→ Ссылка
Автор решения: CrazyElf
    for links in range(len(links)):
        ^^^^^              ^^^^^

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

for i, img_link in enumerate(links, 1):
    img = Image.open(img_link)
    text = pytesseract.image_to_string(img, lang=None, config='')
    print(str(i) + ". " + str(text))

В современных версиях питона последний print можно записать проще и понятнее:

    print(f'{i}. {text}')
→ Ссылка