Ali Kahya Ответов: 1

Как я могу решить эту проблему valueerror в Python?


Я пытаюсь читать строки в текстовом файле (number.txt) и записать в список.

Мой кодовый блок:

читать = открыть('number.txt')

# используйте readline() для чтения первой строки

строка = чтение.с readline()
# используйте строку чтения для дальнейшего чтения.
# Если файл не пуст, продолжайте читать по одной строке за раз, пока файл не опустеет

алист = []

в то время как линия:

aList.append(int(line.strip())) #Строка 17 находится здесь
строка = чтение.с readline()

читать.рядом()
печати(Алисат)
Но я получаю эту ошибку.

Обратная трассировка (самый недавний призыв последнего):
Файл "WriteInList.py", строка 17, in <module>
aList.append(int(line.strip()))
ValueError: недопустимый буквальном для int() с основанием 10: "

Что я уже пробовал:

Я использовал стриптиз()
Я искал об этом, однако не мог понять.

1 Ответов

Рейтинг:
6

Jochen Arndt

Он говорит вам, что строка содержит текст, который не может быть преобразован в int. strip() будут удалены только начальные и конечные пробелы.

Для обработки таких случаев вы можете использовать try - except:

for line in read:
    try:
        num = int(line.strip())
        aList.append(num)
    except:
        print "Not a number in line " + line
Обратите внимание, что я изменил while петли на for цикл на объекте file, потому что это более эффективно.