python-2.7 - Python根据部分名称和文件时间戳读取文本文件

标签 python-2.7 pandas timestamp

我正在尝试将两个相同的文件拉入不同数据帧中的 python 中,最终目标是比较新文件中添加的内容和旧文件中删除的内容。到目前为止,我的代码如下所示:

In[1] path = r'\\Documents\FileList'
      files = os.listdir(path)

In[2] files_txt = [f for f in files if f[-3:] == 'txt']

In[3] for f in files_txt:
          data = pd.read_excel(path + r'\\' + f)
          df = df.append(data)

我还设置了一个变量,使其等于当前日期减去一定天数,我想用它来提取日期等于该变量的文件:

d7 = dt.datetime.today() - timedelta(7)

到目前为止,我不确定如何执行此操作,因为文件名的第一部分始终保持不变,但它们在末尾添加数字(例如 file_03232016 然后 file_03302016)。我想解析目录中文件名的开头部分,如果它与我设置的日期参数匹配,则将其添加到数据帧中。

编辑:我忘记补充一点,有时我还需要查看系统日期创建时间戳,因为文件名中的文本日期并不总是存在。

最佳答案

以下是对原始代码的一些修改,以获取包含目标日期的文件列表。您需要使用strftime .

import os
from datetime import timedelta

d7 = dt.datetime.today() - timedelta(7)
target_date_str = d7.strftime('_%m%d%Y')

files_txt = [f for f in files if f[-13:] == target_date_str + '.txt']

>>> target_date_str + '.txt'
'_03232016.txt'

data = []
for f in files_txt:
      data.append(pd.read_excel(os.path.join(path,  f))
df = pd.concat(data, ignore_index=True)

关于python-2.7 - Python根据部分名称和文件时间戳读取文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36318669/

相关文章:

python - 值错误 : Must specify a fill 'value' or 'method'

java - 推荐的 REST API 日期格式

hive - Hive 中的日期比较

ruby-on-rails - Ruby on Rails - 摆脱事件记录 t.timestamps 列上的毫秒数

python - 使用 pywin32(win32evtlog 模块)在 Python 中读取 Windows 事件日志

python-2.7 - Python 2.7 描述符——什么是 "Binding Behavior"

python-2.7 - 为什么 python 的内置 sum 函数在用于展平列表列表时速度很慢?

python - DefaultDict ,在附加元素上,维护按添加顺序排序的键

python - 合并 pandas 数据框

python - 关于如何根据当前 df 列创建新列的问题