0

次の文字列があります。

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 を使用しています。そこに何かアイデアはありますか?

4

2 に答える 2

3

行末に行末記号があります。したがって、「end_date」だけでなく、「end_date\n」または「end_date\r」のようなものを探しています。line.rstrip().split(",")を呼び出すだけでなく、使用してくださいsplit

于 2012-07-14T20:05:24.977 に答える
0

\nファイルからデータを読み取っているので、おそらく行の最後に改行 ( ) があります。これは、最後の項目が"end_date"butではないことを意味し"end_date\n"ます。items = line.strip().split(",")末尾の空白を削除してみてください。

于 2012-07-14T20:05:15.513 に答える