我有以下字符串:
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。那里有什么想法吗?
答案 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(",")
删除尾随空格。