跨目录读写CSV文件报错:Python跨目录操作CSV运行失败
解决跨目录CSV文件读取的问题
咱们直接来搞定你遇到的问题,其实根源很简单:
问题核心原因
你在open()函数里写了字符串'latest_file',而不是你之前找到的变量latest_file!程序会误以为你要打开当前Python脚本目录下一个名叫latest_file的文件,自然找不到目标CSV。另外还有个小细节:Windows路径里的反斜杠\在Python字符串里需要特殊处理,不然可能被当成转义字符解析出错。
修正后的完整代码
import csv import glob import os # 用原始字符串处理Windows路径,避免转义问题 list_of_files = glob.glob(r'C:\D2\D2a\D2b\*.csv') print('found csv files:', list_of_files) latest_file = max(list_of_files, key=os.path.getmtime) print('The most recent .csv file found:', latest_file, '\n') # 直接使用存储了完整路径的变量,不要加引号! with open(latest_file, newline='') as DAQfile: reader = csv.reader(DAQfile, delimiter=',') rows_count = 0 for row in reader: rows_count += 1 print(f"Total rows in latest CSV: {rows_count}")
关键修改点
- 路径转义处理:给glob的路径字符串加前缀
r(原始字符串),这样\就不会被Python当成转义字符,确保路径解析正确。 - 文件打开参数修正:把
open('latest_file')改成open(latest_file),直接使用存储了最新文件完整路径的变量,而不是字符串字面量。 - (可选优化)把计数变量改成更直观的
rows_count,用f-string让输出信息更清晰。
效果验证
运行这段代码后,程序会正确定位到C:\D2\D2a\D2b目录下的最新CSV文件,顺利读取并统计行数,不会再出现FileNotFoundError啦。
内容的提问来源于stack exchange,提问作者NP1
相关产品推荐
相关产品推荐

