我有一個包含我的學校時間表的文件,我想從文件中的每一行創建一個列表。該文件看起來是這樣的:使用具有格式化字符串的Python的exec()函數?
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個變量,只需使用字典。 – MattDMo