Python 使用glob时添加对文件时间戳列的修改

Python 使用glob时添加对文件时间戳列的修改,python,pandas,glob,Python,Pandas,Glob,我在一个文件夹中有多个文件,用户可以在不同的时间修改这些文件。每周我都会将它们合并到一个主文件中,但我需要跟踪上次修改文件的时间。这是一个手动过程,我正在尝试自动化 我编写了glob代码,但似乎无法添加一个列来提供主文件中每个文件的修改时间 all_data = pd.DataFrame() for f in glob.glob("..\Python_Practice\Book*.xlsx"): df = pd.read_excel(f) all_data = all_data.

我在一个文件夹中有多个文件,用户可以在不同的时间修改这些文件。每周我都会将它们合并到一个主文件中,但我需要跟踪上次修改文件的时间。这是一个手动过程,我正在尝试自动化

我编写了glob代码,但似乎无法添加一个列来提供主文件中每个文件的修改时间

all_data = pd.DataFrame()
for f in glob.glob("..\Python_Practice\Book*.xlsx"):
    df = pd.read_excel(f)
    all_data = all_data.append(df, ignore_index=True)
all_data.head()


all_data[time] = time.strftime('%m%d%H%M', os.path.gmtime('file')

它实际上不起作用,在论坛上也找不到任何类似它的东西

你很接近了,但是你需要循环浏览你的文件,并将
os.path.getmtime
传递到一个列表中。然后,您可以将它们传递给索引

    from datetime import datetime 
    allFiles = glob.glob('*.xlsx')
    dfs = [pd.read_excel(f) for f in allFiles]
    keys = [datetime.fromtimestamp(os.path.getmtime (f)).strftime('%Y-%m-%d %H:%M:%S') for f in allFiles]
    frame = pd.concat(dfs, keys=keys)
以下将

  • 查找所有
    .xlsx
    文件
  • 将它们合并到一个列表中
  • 获取上次修改的unix时间
  • 将unix时间转换为日期时间
  • 将数据帧合并为一个数据帧,并将日期时间传递到索引中

        from datetime import datetime 
        allFiles = glob.glob('*.xlsx')
        dfs = [pd.read_excel(f) for f in allFiles]
        keys = [datetime.fromtimestamp(os.path.getmtime (f)).strftime('%Y-%m-%d %H:%M:%S') for f in allFiles]
        frame = pd.concat(dfs, keys=keys)
    

    我会尝试在处理每个文件时使用时间戳。您的代码可能会变成:

    all_data = pd.DataFrame()
    for f in glob.glob("..\Python_Practice\Book*.xlsx"):
        df = pd.read_excel(f)
        df['time'] = time.strftime('%m%d%H%M', os.path.gmtime('file')
        all_data = all_data.append(df, ignore_index=True)
    all_data.head()
    

    谢谢你的快速回复!我试着运行代码,它一直说模块“datetime”没有属性“fromtimestamp”。有什么我做错了吗?抱歉@Alex Gould,在您的文件顶部放置
    from datetime import datetime
    任何时候,我的伙计,您也可以重置索引并将其分配给一列作为您的用例。继续自动化!