如何根据目录中以特定名称开头的文件获取日期时间?

How do I get datetime based on files in my directory that starts with a certain name?

我的代码-

for file in os.listdir("C:/Users/hhh/Desktop/autotranscribe/python/Matching"):
    if file.startswith("Master"):
        dfs = pd.read_excel(file, sheet_name=None)
        output = dict()
        for ws, df in dfs.items():
            if ws in ["Added"]:
               continue
            if ws in ["All Members", "Terms"]:
               temp = df

>temp
Company State Address Zip    City
ABC      CA   1 st    86284  LA

我想要另一列表示文件在目录中 created/dropped 的月份减 1(文件日期减 1 个月)。所以基本上,如果文件是在 22 年 5 月 5 日创建的。我想要下面的

Company State Address Zip    City  File Month
ABC      CA   1 st    86284  LA    04-2022

我的尝试-

import datetime
path = "C:/Users/hhh/Desktop/autotranscribe/python/Matching"
# file creation timestamp in float
c_time = os.path.getctime(path)
# convert creation timestamp into DateTime object
dt_c = datetime.datetime.fromtimestamp(c_time)
temp['File Month'] = (dt_c.replace(day=1) - datetime.timedelta(days=1)).strftime("%m-%Y")

但这仅在我设置路径时有效,而在我的情况下无效,因为您在上面看到的我的路径基于以 'Master' 开头的文件名。我只希望它基于文件名而不是基于 os 路径,因为 os 路径每天都会在其中创建多个文件。我该怎么做?

将更改时间的代码移到 for 循环中。另外,您不需要 datetimepandas 有你需要的所有操作。

path = "C:/Users/hhh/Desktop/autotranscribe/python/Matching"
for file in os.listdir(path):
    if file.startswith("Master"):
        dfs = pd.read_excel(file, sheet_name=None)
        output = dict()
        for ws, df in dfs.items():
            if ws in ["Added"]:
               continue
            if ws in ["All Members", "Terms"]:
               temp = df
               dt = pd.to_datetime(os.path.getctime(os.path.join(path,file)),unit="s").replace(nanosecond=0)
               temp['File Month'] = (dt.replace(day=1)-pd.DateOffset(days=1)).strftime("%m-%Y")