使用Pandas修改文件日期格式,需统一为%d-%m-%Y格式
统一文件日期格式为%d-%m-%Y的解决方案
没问题!要把文件里的日期统一成%d-%m-%Y(也就是日-月-年)格式,我给你几个实用的解决方案,根据你的使用场景选就行:
方案1:Python脚本(灵活适配各种文本文件)
如果你的文件是文本格式,Python可以精准处理日期转换,还能自动跳过无效日期,避免出错:
import re from datetime import datetime def convert_dates_in_file(file_path): # 读取文件内容 with open(file_path, 'r', encoding='utf-8') as f: content = f.read() # 匹配YYYY-MM-DD格式的日期(比如2017-09-20) date_pattern = re.compile(r'\b(\d{4})-(\d{2})-(\d{2})\b') def replace_date(match): year, month, day = match.groups() try: # 解析日期并格式化为DD-MM-YYYY date_obj = datetime(int(year), int(month), int(day)) return date_obj.strftime('%d-%m-%Y') except ValueError: # 遇到无效日期(比如2017-13-01),保持原内容不变 return match.group(0) # 替换所有符合格式的日期 updated_content = date_pattern.sub(replace_date, content) # 写回文件(建议先改成新文件名,比如'updated_your_file.txt',避免覆盖原文件) with open(file_path, 'w', encoding='utf-8') as f: f.write(updated_content) print(f"日期转换完成!已更新文件: {file_path}") # 替换成你的实际文件路径 convert_dates_in_file('your_file.txt')
方案2:命令行工具(快速处理,适合Linux/macOS/Git Bash)
如果你的文件里都是标准的YYYY-MM-DD有效日期,用sed命令一行就能搞定:
# 直接修改原文件,同时生成备份文件(your_file.txt.bak) sed -i.bak 's/\b\([0-9]\{4\}\)-\([0-9]\{2\}\)-\([0-9]\{2\}\)\b/\3-\2-\1/g' your_file.txt
-i.bak:修改原文件的同时生成备份,安全起见建议保留这个参数- 正则表达式会把
YYYY-MM-DD的日期调换顺序为DD-MM-YYYY
如果是Windows系统,用PowerShell执行以下命令:
(Get-Content your_file.txt) -replace '\b(\d{4})-(\d{2})-(\d{2})\b', '$3-$2-$1' | Set-Content your_file.txt
注意事项
- 优先备份原文件:不管用哪种方法,先复制一份原文件再操作,避免数据丢失
- 若文件是二进制格式(比如Excel、Word),用对应软件的批量处理功能:
- Excel中可以用
TEXT函数:=TEXT(A1,"dd-mm-yyyy"),然后批量填充到其他单元格 - Word中用「查找替换」功能,开启通配符后,查找内容填
([0-9]{4})-([0-9]{2})-([0-9]{2}),替换内容填\3-\2-\1
- Excel中可以用
内容的提问来源于stack exchange,提问作者Serhii




