【问题标题】:Add modification of file time stamp column while using glob使用 glob 时添加文件时间戳列的修改
【发布时间】:2019-10-02 00:47:35
【问题描述】:

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

我编写了 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')

它并没有真正起作用,并且在论坛上找不到任何可能做类似事情的东西

【问题讨论】:

    标签: python pandas glob


    【解决方案1】:

    您很接近,但您需要遍历文件并将os.path.getmtime 传递到列表中。然后您可以将这些传递给索引。

    下面会

  • 查找所有.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)
    
  • 【讨论】:

    • 感谢您的快速回复!我尝试运行代码,它一直说模块'datetime'没有属性'fromtimestamp'。是不是我做错了什么?
    • 抱歉@Alex Gould,请在文件顶部添加from datetime import datetime
    • 任何时候我的人,您也可以重置索引并将其分配给列作为您的用例。继续自动化!
    【解决方案2】:

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

    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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      • 2014-10-11
      • 2013-11-16
      • 1970-01-01
      • 1970-01-01
      • 2014-11-06
      相关资源
      最近更新 更多