суть моего обращения в следующем. Написал данный код, который работал и выводил строку под нужным номером, но после определённой итерации стал выдавать ошибку "list index out of range" с жалобой на строку "f = f.readlines()[N-1]" (Учитывая, что в N вводится число от 1 до 5 соответствующие номеру строки в файле)
А так же хотел попросить подсказать, как сделать, чтобы информация записывалась следом в нужную строку, а не печаталась на новой и как включить готовую строку в существующий изначальный файл.(В данном случае, чтобы в строку добавился новый третий город, который вводит пользователь)
Заранее большое спасибо за помощь.
f = open('план.txt', 'r', encoding= 'utf-8')
print("Исходный список: "+'\n'+ "".join(f))
N = int(input("Введите номер строки: "))
g = str(input("Введите новый город: "))
f = f.readlines()[N-1]
f = f +', '+ g
print(f)
Текст исходного файла:
1;"Магнит";магазин;10000000;Москва, Волгоград
2;"Лента";магазин;80000000;Санкт-Петербург, Самара
3;"Лукойль";АЗС;10000000;Сочи, Анапа
4;"Татнефть";АЗС;90000000;Москва, Санкт-Петербург
5;"Пятерочка";магазин;80000000;Сочи, Ростов-на-Дону
with. А какой номер строки вы вводили, когда ошибка выходила? Покажите ввод и ошибку, иначе это беспредметный разговор. – CrazyElf Jun 03 '22 at 13:20Введите новый город: Москва Traceback (most recent call last):
File "K:\план\untitled1.py", line 5, in
f = f.readlines()[N-1]
IndexError: list index out of range
– colden Jun 03 '22 at 13:27print(f.readlines()), посмотрим, что там, может переводы строки не подхватились, например? – CrazyElf Jun 03 '22 at 13:37f.seek(0)передf.readlines(), либо открывайте файл заново каждую итерацию цикла. – CrazyElf Jun 03 '22 at 13:50Введите новый город: Москва ['1;"Магнит";магазин;10000000;Москва, Волгоград\n', '2;"Лента";магазин;80000000;Санкт-Петербург, Самара\n', '3;"Лукойль";АЗС;10000000;Сочи, Анапа\n', '4;"Татнефть";АЗС;90000000;Москва, Санкт-Петербург\n', '5;"Пятерочка";магазин;80000000;Сочи, Ростав-на-Дону\n'] Traceback (most recent call last):
File "K:\план\untitled1.py", line 7, in
f = f.readlines()[N-1]
IndexError: list index out of range
– colden Jun 03 '22 at 13:53