使用python

时间:2016-12-08 07:41:31

标签: python date csv

我目前有一个csv文件,其中包含一个日期列,格式为dd / mm / yyyy,但我想将其更改为yyyy / mm / dd

我写了下面的代码:

import csv
csv_in = open('news.csv','rb')

for rows in csv.reader(csv_in):
    value = rows[0]
    day= value[:2]
    year= value[-4:]
    month= value[3:5]
    edited = year +'/'+month+'/'+day
    rows[0] = edited
    writer =csv.writer(open('newsedit.csv', 'wb'))
    writer.writerow(rows)

由于某种原因,上面的代码只会写一行并停止,我似乎无法弄清楚为什么会发生这种情况。

2 个答案:

答案 0 :(得分:1)

这是因为你在每次迭代中不断初始化一个新的编写器。这导致输出一次又一次地被替换。您应该只创建一次编写器对象,然后可以重复使用其writerow()方法。

(顺便说一下。有一个很好的日期时间模块,可以轻松处理日期...)

答案 1 :(得分:1)

尝试按日期时间模块转换日期。

import datetime
datetime.datetime.strptime("25/01/2013", '%d/%m/%Y').strftime('%Y/%m/%d')

strptime函数将字符串加载到datetime对象,而strftime将日期时间转换为另一种格式为字符串。