Python:index关键字在列表末尾找不到项目

时间:2012-07-14 20:03:14

标签: python

我有以下字符串:

monday,tuesday,wednesday,thursday,friday,saturday,sunday,start_date,end_date

以及以下Python脚本:

from datetime import datetime, date, time
today = datetime.now()
print today

print today
with open('calendar_clean.txt', 'w') as f1:
    with open('calendar.txt', 'r') as f:       
        newline = ""
        end_date_index = -1       
        for line in f:
            items = line.split(",")

            if end_date_index == -1:
                for item in items:
                    print item
                print "finding end_date index"
                end_date_index = items.index('end_date')
                print end_date_index

执行脚本时,控制台上会显示以下错误消息:

ValueError: 'end_date' is not in list

但是,如果我查找start_date的索引,它会正常执行,返回正确的结果。这是在Windows 7 x64上使用Python 2.7。那里有什么想法吗?

2 个答案:

答案 0 :(得分:3)

你的行尾有一个行终止符。所以它正在寻找类似“end_date \ n”或“end_date \ r \ n”的东西,而不仅仅是“end_date”。使用line.rstrip().split(",")而不是仅调用split

答案 1 :(得分:0)

由于您正在从文件中读取数据,因此该行的末尾可能会有换行符(\n)。这意味着最后一项不是"end_date"而是"end_date\n"。尝试执行items = line.strip().split(",")删除尾随空格。