如何使用Python的datetime模块获取D-1日期读取对应日期命名的CSV文件
按指定日期格式获取前一天日期的实现方案
你给出的文件名日期格式为MM-DD-YYYY(月-日-年),核心实现逻辑如下:
- 获取当前系统日期
- 减去1天的时间偏移量
- 按
%m-%d-%Y的格式输出日期字符串 - 拼接为对应CSV文件名即可按原有逻辑读取
Python 实现示例
直接使用内置datetime模块即可,会自动处理跨月、跨年的日期计算:
from datetime import datetime, timedelta # 获取前一天日期 yesterday = datetime.now() - timedelta(days=1) # 格式化为MM-DD-YYYY字符串 yesterday_str = yesterday.strftime("%m-%d-%Y") # 拼接得到目标文件名 csv_filename = f"myfile-{yesterday_str}.csv"
如果你的实际文件名日期顺序是日-月-年,把strftime参数改为"%d-%m-%Y"即可。
Shell 脚本实现示例
GNU Date(大部分Linux发行版默认)
yesterday_str=$(date -d "-1 day" +"%m-%d-%Y") csv_filename="myfile-${yesterday_str}.csv"
BSD Date(macOS默认)
yesterday_str=$(date -v-1d +"%m-%d-%Y") csv_filename="myfile-${yesterday_str}.csv"
JavaScript(Node.js环境)实现示例
const yesterday = new Date(); yesterday.setDate(yesterday.getDate() - 1); // 补零格式化日期 const year = yesterday.getFullYear(); const month = String(yesterday.getMonth() + 1).padStart(2, '0'); const day = String(yesterday.getDate()).padStart(2, '0'); const yesterdayStr = `${month}-${day}-${year}`; const csvFilename = `myfile-${yesterdayStr}.csv`;
补充说明
如果业务需要排除周末、法定节假日,额外增加工作日校验逻辑,过滤非工作日的日期即可。
内容的提问来源于stack exchange,提问作者Felipe
相关产品推荐
相关产品推荐

