我很难确定我的问题是什么......它涉及这段代码:
def txt_to_dict_ad():
my_dict = {}
with open('database.txt', 'r') as file:
for line in file:
temp = list(line.strip().split('-'))
my_dict[temp[1].strip('\n')] = temp[0]
return my_dict
当我运行它并且例如想要打印此函数的输出时,我得到包含temp [1]和temp [0]的行的“索引超出范围”错误。这是为什么?我怎么能避免它?
txt文件包含阿拉伯语和德语词汇, 示例数据:自动 - سيارة
答案 0 :(得分:1)
如果database.txt
中的一行不包含-
,则变量temp
包含仅包含一个元素的列表,并且下一行的temp[1]
尝试访问不存在的第二个元素因此会抛出错误。
例如,您可以忽略没有-
的行来避免错误。
if '-' in line:
temp = list(line.strip().split('-'))
my_dict[temp[1].strip('\n')] = temp[0]
如果你想识别没有hyhen的行:
with open('database.txt', 'r') as file:
for i, line in enumerate(file, start=1):
if '-' in line:
temp = list(line.strip().split('-'))
my_dict[temp[1].strip('\n')] = temp[0]
else:
print('Line {} misses the underscore.'.format(i))