我有一个名为temp的数据框架
temp
Partner Zip Phone
VIP 002 267...
我有一个脚本,它遍历我的操作系统目录并向这些列添加数据我想要一个名为filemmonth的新列,如果让我们说今天7/9/2022在目录中删除了一个文件,那么文件月份应该指示DateModified减去1个月。本例为六月(MM-YYYY)
Partner Zip Phone FileMonth
VIP 002 267.. 06-2022
我正在做-
temp['File Month'] = (dt.replace(day=1)-pd.DateOffset(days=1)).strftime("%m-%Y")
但是由于这不是基于os目录中修改的日期,所以我得到了所有文件最近一个月的数据,这应该是不应该的,因为有些文件甚至在4月和5月也被删除了。如何让temp['File Month']的日期修改为每个目录的1个月?
给定一个文件路径列表,您可以调用os.path.getmtime()
来获得文件最后被修改的时间戳(以秒为单位)。.replace(month = ...)
允许您将日期的月份减少一个。
代码由
给出import os
from datetime import datetime
dateModList = []
for filePath in filePathList:
ts_mod = datetime.fromtimestamp(os.path.getmtime(filePath))
# properly decrement month (incl. January)
ts_mod = ts_mod.replace(month = 12 if ts_mod.month==1 else ts_mod.month-1)
ts_mod = ts_mod.replace(year=ts_mod.year-1 if ts_mod.month==12 else ts_mod.year)
date_mod = datetime.strftime(ts_mod, '%m-%Y')
dateModList.append(date_mod)
# assign column
temp['File Month'] = dateModList