摆脱CSV文件(Python)的时间

时间:2017-03-13 12:06:26

标签: python

这是我庞大的csv文件。 "2017/03/04 14:49:15", "a" "2017/03/04 14:49:16", "b" "2017/03/04 14:50:32", "c"

python获取以下输出的方式是什么?

想要输出1:只显示小时

"2017/03/04 14", "a" "2017/03/04 14", "b" "2017/03/04 14", "c"

想要输出2:仅显示日期

"2017/03/04", "a" "2017/03/04", "b" "2017/03/04", "c"

1 个答案:

答案 0 :(得分:0)

最好将每个条目作为数据时对象读取,然后使用format specifiers根据需要对其进行格式化:

import csv
from datetime import datetime

with open('input.csv', 'rb') as f_input, open('output.csv', 'wb') as f_output:
    csv_output = csv.writer(f_output, quoting=csv.QUOTE_ALL)

    for row in csv.reader(f_input):
        row[0] = datetime.strptime(row[0], "%Y/%d/%m %H:%M:%S").strftime("%Y/%d/%m %H")
        csv_output.writerow(row)

小时输出:

"2017/03/04 14","a"
"2017/03/04 14","b"
"2017/03/04 14","c"

然后修改它以删除小时,只需根据需要更改strftime(),例如

row[0] = datetime.strptime(row[0], "%Y/%d/%m %H:%M:%S").strftime("%Y/%d/%m")

它使用strptime()首先将字符串转换为数据时对象。然后将其传递给strftime()以将其转换回格式不同的字符串。

Python的csv库负责将文件每一行中的所有元素拆分为列表格式。