通过Python导出CSV和标题&日期格式

时间:2016-04-15 13:54:04

标签: python date csv cx-oracle

我想将Export01.csv的第一列格式化为dd / mm / yyyy。遗憾的是,我输出时的当前格式是dd / mm / yy mm:mm。

有人可以帮我调整代码,以便在导入过程中对日期进行更改吗?

import sys
import cx_Oracle
import csv

connection = cx_Oracle.connect('user','password','ORPM2') 
cursor = connection.cursor()


SQL="SELECT * FROM EXPORT01"
cursor.execute(SQL)

filename="C:\Projects\SQL_Export\Export01.csv"

with open(filename,"wb") as fout:
writer = csv.writer(fout)
writer.writerow([ i[0] for i in cursor.description ]) # heading row
writer.writerows(cursor.fetchall())

fout.close()
cursor.close()
connection.close() 

我在Export01

中添加了前两列数据的示例
WEEK_ENDING         ORDER_HEADLINE
12/02/2016 00:00    Headline
15/01/2016 00:00    Headline
15/01/2016 00:00    Headline

1 个答案:

答案 0 :(得分:1)

如果您一次处理一行的f​​etchall,则可以按如下方式转换第一列条目:

from datetime import datetime
import sys
import cx_Oracle
import csv


connection = cx_Oracle.connect('user','password', 'ORPM2') 
cursor = connection.cursor()
SQL="SELECT * FROM EXPORT01"
cursor.execute(SQL)
filename = r"C:\Projects\SQL_Export\Export01.csv"

with open(filename, "wb") as fout:
    writer = csv.writer(fout)
    writer.writerow([i[0] for i in cursor.description ]) # heading row

    for row in cursor.fetchall():
        cols = list(row)
        cols[0] = cols[0].strftime("%d/%m/%Y")
        writer.writerow(cols)

cursor.close()
connection.close()

另请注意,当您离开其范围时,您使用的with语句将自动关闭该文件。我还建议你在文件路径前加上r,以避免Python试图逃避路径中的任何反斜杠。