我目前有一个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)
由于某种原因,上面的代码只会写一行并停止,我似乎无法弄清楚为什么会发生这种情况。
答案 0 :(得分:1)
这是因为你在每次迭代中不断初始化一个新的编写器。这导致输出一次又一次地被替换。您应该只创建一次编写器对象,然后可以重复使用其writerow()方法。
(顺便说一下。有一个很好的日期时间模块,可以轻松处理日期...)
答案 1 :(得分:1)
尝试按日期时间模块转换日期。
import datetime
datetime.datetime.strptime("25/01/2013", '%d/%m/%Y').strftime('%Y/%m/%d')
strptime
函数将字符串加载到datetime对象,而strftime
将日期时间转换为另一种格式为字符串。