我如何添加一个列到我的数据框架,这表明日期修改减去1个月的文件在os目录?



我有一个名为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

最新更新