【发布时间】:2014-06-10 12:58:37
【问题描述】:
我正在尝试将 Excel 中的日期格式转换为可以读取到 MySQL 数据库中的格式。我正在使用 python 处理日期列,将其导出回 csv 文件,然后将其转储到 MySQL 表中。
日期列如下所示:
Date
6/10/13
6/17/13
6/24/13
我希望它采用以下格式:2013-06-10 或 ("%Y-%m-%d")
这是我的代码:
import datetime
import csv
def read(filename):
new_date=[]
cr = csv.reader(open(filename,"rU").readlines()[1:], dialect='excel')
for row in cr:
# print row[0]
cols=datetime.datetime.strptime(row[0] , "%m/%d/%y" )
newcols=cols.strftime("%Y-%m-%d")
# print newcols
new_date.append(newcols)
print new_date[0]
with open('new_file.csv', 'wb') as f:
writer = csv.writer(f)
for date in new_date:
writer.writerow([date])
代码运行,但是当我打开 new_file.csv 时,日期列会自动恢复为 excel 中的旧格式。
我该如何改变这个?
谢谢,
【问题讨论】:
-
我认为这是意料之中的。您对
new_file.csv的输出是正确的,但 Excel 识别出您正在提供日期,并根据其默认日期格式显示它。如果您要导入 MySQL 的是 CSV 文件,我会说您走在正确的轨道上,无需担心 Excel 如何显示内容。 -
好的,只是想知道,我可以将它写回同一个文件,而不是写入一个新文件,然后只替换日期列中的日期格式吗?
-
这个问题在这里得到解答:stackoverflow.com/questions/16020858/…
标签: python mysql date datetime csv