通过 Python 使用 headers 和日期格式导出 CSV

Exporting CSV via Python with headers & date formatting

我希望将 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

如果一次处理一行 fetchall,则可以按如下方式转换第一列条目:

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 试图转义路径中的任何反斜杠。