【问题标题】:How to change the format of the date in a .csv file using Python 2.7?如何使用 Python 2.7 更改 .csv 文件中的日期格式?
【发布时间】:2017-11-24 20:17:07
【问题描述】:

我之前在 Stack Overflow 上多次看到过这个问题,但是,我没有看到有人在这里正确地提出或回答这个问题。所以,这是我的问题:我有一个名为 selected.csv 的 .csv 文件,包含三列 - 日期 (LT)、AQI 和原始浓度。日期的格式为 dd-mm-yyyy hh:mm。我想将日期的格式转换为 yyyy-mm-dd,然后将更正后的数据保存为三列 - 日期、AQI 和原始浓度。作为更正的.csv。我尝试了下面键入的代码,但无济于事。

import csv
from datetime import datetime

output_file = open(r"C:\Users\Win-8.1\Desktop\delhi\corrected.csv", "wb")
fieldnames = ['Date', 'AQI' , 'Raw Conc.']
writer = csv.DictWriter(output_file, fieldnames = fieldnames)
writer.writeheader()

with open(r"C:\Users\Win-8.1\Desktop\delhi\selected.csv") as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        output_row = {}
        output_row['Date'] = datetime.datetime.strptime(row['Date (LT)'], '%d-%m-%Y %H:%M').strftime('%Y-%m-%d')
        output_row['AQI'] = row['AQI']
        output_row['Raw Conc.'] = row['Raw Conc.']
        writer.writerow(output_row)

output_file.close()

【问题讨论】:

  • 这个问题的措辞不同,并且之前多次问过,但是,他们似乎都暗示 datetime.datetime.strptime(string, 'old format').strptime('new format')作为解决方案,在上面的代码中不起作用。

标签: python-2.7 csv date


【解决方案1】:
output_row['Date'] = datetime.strptime(row['Date (LT)'], '%d-%m-%Y %H:%M').strftime('%Y-%m-%d')

当您提到格式为DD-MM-YYYY 时,您也在使用%H:%M。也许你不是故意的?

【讨论】:

  • 我实际上是打算写它,因为我的输入文件包含 hh:mm:ss。但是,我不希望在我的输出文件中使用它。
  • 我已经适当地编辑了我的问题。你现在可能想重新审视这个问题。
猜你喜欢
  • 2017-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-12
  • 1970-01-01
  • 2017-03-09
相关资源
最近更新 更多