0
我的CSV文件包含日期格式爲:將CSV日期時間爲一個整數
10/3/1946 0:00:00
4/4/1947 0:00:00
我想知道發生過的CSV文件中的值,說12/18/1957 0:00:000
?
爲了進行比較,我假設我需要將其轉換爲數字,例如,10/3/1946 0:00:00
將是17078.00
。
有沒有內置的方法來做到這一點?
我的CSV文件包含日期格式爲:將CSV日期時間爲一個整數
10/3/1946 0:00:00
4/4/1947 0:00:00
我想知道發生過的CSV文件中的值,說12/18/1957 0:00:000
?
爲了進行比較,我假設我需要將其轉換爲數字,例如,10/3/1946 0:00:00
將是17078.00
。
有沒有內置的方法來做到這一點?
我建議你將csv文件中的日期轉換爲datetime
格式。這是通過取出字符串並使用strptime()
將其轉換爲datetime
對象來完成的。該函數採用格式字符串,可以告訴它日期字符串是如何格式化的。例如%Y
告訴它期望四位數年份。
首先創建日期時間以與例如after_date
。然後,可以將兩個日期如下比較:
from datetime import datetime
import csv
after_date = datetime(1957, 12, 18)
print "Entries after {}".format(after_date)
with open('input.csv') as f_input:
for row in csv.reader(f_input):
row_date = datetime.strptime(row[0], "%m/%d/%Y %H:%M:%S")
if row_date >= after_date:
print "{} - {}".format(row[1], row_date)
這是假設你正試圖以比較的日期是在第一欄,即row[0]
。因此,舉例來說,如果你有一個CSV文件,它看起來像:
10/3/1946 0:00:00,row1
4/4/1947 0:00:00,row2
4/4/1957 0:00:00,row3
12/19/1957 0:00:00,row4
1/1/1958 0:00:00,row5
該腳本會顯示如下信息:
Entries after 1957-12-18 00:00:00
row4 - 1957-12-19 00:00:00
row5 - 1958-01-01 00:00:00
爲什麼不實際的比較的一切,日期時間,使用'strptime'? – miradulo
我認爲這樣做會更容易,因爲我也需要自某個日期以來「過去的天數」。 – DPdl
您可以使用'strptime'轉換日期,並計算差異'date1 - date2'。 –