2016-11-16 12 views
1

文字列の先頭部分も削除しながら、csvファイルの日付列の値を一括して変更しようとしています。現在のフォーマットは、たとえば「Company Name Here Oct.2 2016 9:43 PM」です。この "20161021502"のように、ISO形式の日付が必要です。Pythonバッチ変更csv date

私はこのエラーを取得し、CSVファイルからオブジェクトを分割するにこだわっている:(4予想2 GOT)解凍するために十分ではない値これまでのところ私のコードを

を:とValueErrorが

Traceback (most recent call last): 
    File "C:\Users\dave\AppData\Local\Programs\Python\Python35\Scripts\dealerTestData.py", line 13, in <module> 
month, day, year, time = newDate.split() 

私は過去newDate = index[0][-19:]が列全体マイナス会社名をプリントアウトすることができ、すべてをコメントアウトした場合

dealerFile = open('C:/Users/dave/Downloads/Prospect_Source_Measurement_Details- 2016112.csv') 
dealerReader = csv.reader(dealerFile) 
dealerData = list(dealerReader) 
dealerData 


for index in dealerData: 
    newDate = (index[0])[-19:] 
    totalDate = repr(newDate) 

    month, day, year, time = newDate.split() 

    time = datetime.strptime(time, '%I:%M%p') 
    month = datetime.strptime(month, '%b') 
    totalDate = year + month.strftime('%m') + day + time.strftime('%H%M') 
    print(newDate) 

:次のようになります。文字列として表現しようとするとすぐに、エラーが出ます。

+0

「newDate」を印刷し、あなたが得るものを見てください。それは2つの要素しかないようですが、4つの変数に割り当てようとします。 – furas

+0

実際には '20161021502'は正確にISO 8601の有効な日付ではありません。 'T '区切り文字:' 2016102T1502'がありません。 – qzb

答えて

0

答えを見つけました。ファイルを読むとき、5つの見出し行がファイルの本体と異なって構文解析されます。それらが除去されると、論理は健全です。