python - 带日期的文件名。需要使用一年中最后一个月的日期的文件名存储文件
问题描述
嗨,我试过但无法理解逻辑。我有一个包含许多文件(csv)的文件夹,它们的格式都是从 oct2020 到 sept2021。但有些文件也缺少月份数据。文件名的格式是
eg: ['20201117_KR_App Download - NBA Draft.csv',
'20210130_KR_Get Out The Vote #2_International.csv',
'20210204_KR_Get Out The Vote #4_International.csv',
'20210430_KR_iLP Newsletter #1_Active Subs.csv',
'20210514_KR_Last Weekend 15 Games_Email_MAN_Promo_ILP_ACQ_PRO_Global_EN.csv',
'20210605_KR_Playoffs2ndRdGm1_Email_MAN_Offer_ILP_ACQ_PRO_Global_EN.csv',
'20210706_KR_Playoffs4thRdGm1_Email_MAN_Tune-in_ILP_RET_SUBS_Global_EN.csv']
文件名中的数字是日期,因此 20201117 表示 2020-11-17,格式为 %y%m%d。我想在一个数据框中检索 2020 年最后一个月的文件,并在文件夹中存在的其他数据框中检索 2021 年最后一个月的文件。我们如何在 python 中实现这一点。
我所做的是检索文件夹中的所有文件
'''
country='SouthKorea'
files = pd.Series(os.listdir('../input/' + country))
# second, iterate over dates
for date in pd.date_range('2020-10-01', '2021-09-30', freq='MS').strftime('%Y%m%d'):
for file_name in files[files.str.contains(date)]:
print(file_name)
'''
请让我知道如何实现这一目标。
解决方案
您可以获得以特定年份开头的所有文件的列表,并且由于它是 YYYMMDD 的形式,因此只需从该列表中获取最大值:
files = ['20201117_KR_App Download - NBA Draft.csv',
'20210130_KR_Get Out The Vote #2_International.csv',
'20210204_KR_Get Out The Vote #4_International.csv',
'20210430_KR_iLP Newsletter #1_Active Subs.csv',
'20210514_KR_Last Weekend 15 Games_Email_MAN_Promo_ILP_ACQ_PRO_Global_EN.csv',
'20210605_KR_Playoffs2ndRdGm1_Email_MAN_Offer_ILP_ACQ_PRO_Global_EN.csv',
'20210706_KR_Playoffs4thRdGm1_Email_MAN_Tune-in_ILP_RET_SUBS_Global_EN.csv']
years = ['2020','2021']
for year in years:
# Get all files that start with year
result = max([i for i in files if i.startswith(year)])
print(result)
输出:
20201117_KR_App Download - NBA Draft.csv
20210706_KR_Playoffs4thRdGm1_Email_MAN_Tune-in_ILP_RET_SUBS_Global_EN.csv
推荐阅读
- c# - RegisterInstance 方法和 InstancePerDependency 生命周期范围不一致
- python - 检测 Pandas 数据框所有列的异常值
- swift - 尝试更新 cocoapods 时出现权限错误
- c - 使用 C 中的运算符从无符号整数中获取 6 个最高有效位的最佳方法?
- go - 使用兼容接口进行恐慌接口转换
- node.js - 尝试从位置 17 的日期时间读取日期时间抛出错误
- c - 如何使用 C 中的 write() 函数将浮点数转换为字符串以打印它
- python - 在 Pandas Dataframe 中合并 2 列数据
- machine-learning - 如果不是为了提高速度,那么减少 FLOP 和参数大小的目的是什么?
- reactjs - 我需要在我的项目中调整图像的大小 react + gatsby