我正在尝试将两个相同的文件拉入不同数据帧中的 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/