如何根据特定日期获取最后修改的文件并导入python脚本[重复]
Posted
技术标签:
【中文标题】如何根据特定日期获取最后修改的文件并导入python脚本[重复]【英文标题】:How to get the last modified file based on a specific date and import to python script [duplicate] 【发布时间】:2021-09-17 10:21:34 【问题描述】:我有一个存储在我的数据文件夹中的文件列表。我可以得到list_of_files
:
list_of_files = glob.glob(r'C:\Users\Desktop\Data\*.csv')
我想使用 pandas 在某个特定日期(例如 2021 年 5 月 31 日)读取最后修改的文件。 2021 年 5 月 31 日,可能有多个文件被修改,我需要最后修改的一个 latest_file
,然后像这样导入 python 脚本:
df = pd.read_csv(latest_file, usecols=['A', 'B', 'C'])
我怎样才能意识到这一点?非常感谢
(前一部分的任何解决方案都会很棒。如果您可以将修改后的日期设置为某个月份的最后一天,例如 04/30/2021、05/31/2021、6/30,那就更好了/2021 等)
【问题讨论】:
this 有帮助吗? 不一样。我不需要修改日期。我需要文件 并且它不是最后一次根据系统时间修改的。我需要基于特定日期的最后修改 【参考方案1】:我要感谢 Umar.H 通过电话帮助我解决这个问题。我在下面附上了我的代码:
def get_latest_file(datetime: str, location: str) -> str:
files = Path(location).glob('*.csv')
file_df = pd.DataFrame('path': files)
file_df['mdate'] = pd.to_datetime(file_df['path'].apply(lambda x: x.stat().st_mtime), unit='s')
try:
idx = file_df.loc[
(file_df['mdate'] >= pd.Timestamp(datetime))
&
(file_df['mdate'] < (pd.Timestamp(datetime)
+ pd.DateOffset(hours=23, minutes=59))
)]['mdate'].idxmax()
print(f"Returning file file_df.loc[idx]['path'].stem with a modify time of file_df.loc[idx]['mdate']")
return file_df.loc[idx]['path']
except (KeyError, FileNotFoundError):
return ("No file matched the time delta.")
df4 = pd.read_csv(get_latest_file('28 May 2021', r'C:\Users\...\Desktop'])
【讨论】:
以上是关于如何根据特定日期获取最后修改的文件并导入python脚本[重复]的主要内容,如果未能解决你的问题,请参考以下文章