python split函数不能按预期工作

时间:2017-06-17 21:41:29

标签: python split

我很难确定我的问题是什么......它涉及这段代码:

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文件包含阿拉伯语和德语词汇, 示例数据:自动 - سيارة

1 个答案:

答案 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))