如何在Python中读取含指定文本(如日期)的Excel文件?
读取带时间戳Excel文件的实用方法
1. 是不是必须输入完整文件名?
不是必须。如果Excel文件和你的Python脚本在同一文件夹里,只写文件名(带后缀)即可;如果不在同一目录,就得写相对路径或者绝对路径。但像你遇到的这种文件名带动态时间戳的情况,硬写完整文件名完全没必要,通过匹配特定文本就能自动定位文件。
2. 如何读取包含特定文本(比如日期)的文件?
当然可以,用Python的glob或os模块就能实现,不用手动修改文件名。下面是两种常用方法:
方法一:用glob模块(简洁直观)
glob专门用来匹配文件路径,适合快速筛选包含指定字符的文件:
import pandas as pd import glob # 匹配当前目录下包含"2-23-2023"的xlsx文件 matched_files = glob.glob('*2-23-2023*.xlsx') if matched_files: # 取第一个匹配到的文件(如果只有一个目标文件的话) df = pd.read_excel(matched_files[0]) else: print("未找到符合条件的Excel文件")
方法二:用os模块(更灵活,适合复杂筛选)
遍历文件夹里的所有文件,判断文件名是否包含目标文本且是Excel格式:
import pandas as pd import os target_text = "2-23-2023" # 你要匹配的特定文本 folder_path = "." # 当前目录,可替换成实际文件夹路径 for filename in os.listdir(folder_path): if target_text in filename and filename.endswith('.xlsx'): # 拼接完整路径并读取 df = pd.read_excel(os.path.join(folder_path, filename)) break else: print("未找到符合条件的Excel文件")
进阶:取最新修改的文件
如果同一目录下有多个符合条件的文件,可按修改时间排序,取最新的那个:
import pandas as pd import os target_text = "2-23-2023" folder_path = "." # 筛选出所有符合条件的文件 matched_files = [ os.path.join(folder_path, f) for f in os.listdir(folder_path) if target_text in f and f.endswith('.xlsx') ] if matched_files: # 按文件修改时间倒序排序,最新的排在最前面 matched_files.sort(key=lambda x: os.path.getmtime(x), reverse=True) latest_file = matched_files[0] df = pd.read_excel(latest_file) else: print("未找到符合条件的Excel文件")
内容的提问来源于stack exchange,提问作者lafrankmuraglia
相关产品推荐
相关产品推荐

