У меня есть файл, содержащий мое школьное расписание, и я хочу создать список из каждой строки в файле. Файл выглядит примерно так:Использование функции exec() Python с форматированной строкой?
first:second:third:fourth:fifth
first:second:third:fourth:fifth
код заключается в следующем:
schedule_file = "school-schedule.txt"
with open(schedule_file) as schedule:
for c, line in enumerate(schedule):
exec("ln%s = schedule.read().split(':')" % str(c+1))
print(ln1)
print(ln2)
print(ln3)
print(ln4)
print(ln5)
print(ln6)
print(ln7)
print(ln8)
print(ln9)
print(ln10)
Я знаю, что файл имеет десять строк, поэтому для целей тестирования, я хотел, чтобы напечатать эти десять списки. К сожалению, это, кажется, поставить первую строку в списке под названием ln1
и вызывает исключение NameError для всех других списков, начиная с ln2
:
['first', 'second', 'third', 'fourth', 'fifth']
Traceback (most recent call last):
File "D:\schedule.py", line 10, in <module>
print(ln2)
NameError: name 'ln2' is not defined
Это не представляется возможным использовать отформатированные строки внутри функции exec()
или я Я делаю другую глупую ошибку?
Ваша ошибка заключается в использовании 'Exec()'. Избегайте его любой ценой. Вместо того, чтобы динамически создавать 10 переменных, просто используйте dict. – MattDMo