При чтении файла возникает IndexError: list index out of range
при выполнении кода :
b_12 = "1"
b_2 = "2"
b_22 = "2"
b_3 = "3"
b_32 = "3"
b_4 = "4"
b_42 = "4"
b_5 = "5"
b_52 = "5"
b_6 = "6"
b_62 = "6"
b_7 = "7"
b_72 = "7"
b_8 = "8"
b_82 = "8"
b_9 = "9"
b_92 = "9"
dir_path = os.path.dirname(os.path.realpath(__file__))
print (dir_path)
path_to_file = dir_path + "/cfg.txt"
with open(path_to_file) as file:
b_1 = file.readlines()[1]
b_12 = file.readlines()[2]
b_2 = file.readlines()[3]
b_22 = file.readlines()[4]
b_3 = file.readlines()[5]
b_32 = file.readlines()[6]
b_4 = file.readlines()[7]
b_42 = file.readlines()[8]
b_5 = file.readlines()[9]
b_52 = file.readlines()[10]
b_6 = file.readlines()[11]
b_62 = file.readlines()[12]
b_7 = file.readlines()[13]
b_72 = file.readlines()[14]
b_8 = file.readlines()[15]
b_82 = file.readlines()[16]
b_9 = file.readlines()[17]
b_92 = file.readlines()[18]
питон выдаёт ошибку
File "c:\Users\Александр\Desktop\Qboard Sowftware\main.py", line 35, in <module>
b_12 = file.readlines()[2]
IndexError: list index out of range
моя задача была каждой переменной выдать значение каждой строки файла cfg.txt в чём моя ошибка ?
Ответы (1 шт):
Автор решения: Эникейщик
→ Ссылка
После первого file.readlines() курсор находится в самом конце файла и читать оттуда больше нечего. Поэтому в строчке b_12 = file.readlines()[2] считывается примерно ничего, а у ничего нет второго элемента.
Да и сама идея 18 раз читать файл, мягко скажем, не самая удачная. Во-первых, это медленно, во-вторых, зачем делать 18 раз одно и то же. Считай один раз в переменную и бери уже из этой переменной:
with open(path_to_file) as file: # после этой строчки не нужно делать две пустых
data = file.readlines()
b_1 = data[1]
и т.д.