You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用glob无法识别指定文件夹内CSV文件,求正确用法及排查方案

解决glob无法识别CSV文件的问题

首先咱们先揪出你代码里的几个关键问题,一步步搞定:

1. glob路径写法的核心问题

你当前写的path = "C:/build/Files*.csv"大概率是路径匹配逻辑错了:

  • 如果想匹配**C:/build文件夹下所有CSV文件**,正确路径应该是:
    path = "C:/build/*.csv"
    
  • 如果确实要匹配该文件夹下以Files开头的CSV文件,那得先确认文件夹里真的有这类命名的文件(比如Files_01.csv、Files_sales.csv),要是文件根本不是Files开头,glob肯定找不到。
  • 另外Windows系统里,路径也可以用转义反斜杠写法,比如"C:\\build\\Files*.csv",两种写法都能正常工作,但必须和实际文件夹结构完全对应。

2. 结果文件的打开模式错了

你打开Result.csv用的是'r'(只读)模式,但既然要写入计算结果,得改成'w'(覆盖写入)或者'a'(追加写入)模式,不然会因为无法写入报错。另外你这里的路径少了个斜杠,C:PycharmProjects应该是C:/PycharmProjects,不然会被当成相对路径,后续也容易出问题。

修正后的完整示例代码

import glob

# 根据实际需求选正确路径
path = "C:/build/*.csv"  # 匹配build文件夹下所有CSV
# path = "C:/build/Files*.csv"  # 匹配build文件夹下以Files开头的CSV

# 先打印匹配结果,方便排查是否找到文件
print(f"找到的文件列表: {glob.glob(path)}")

for fileName in glob.glob(path):
    print(f"正在处理: {fileName}")
    with open(fileName, 'r') as file, \
         open('C:/PycharmProjects/Result.csv', 'a', newline='') as result_file:
        # 这里写你的计算逻辑,举个简单例子:
        import csv
        reader = csv.reader(file)
        writer = csv.writer(result_file)
        for row in reader:
            # 比如对数字单元格乘2
            processed_row = [int(cell)*2 if cell.isdigit() else cell for cell in row]
            writer.writerow(processed_row)

额外排查小技巧

  • 先单独打印glob.glob(path)的结果,如果是空列表,说明路径或通配符完全不匹配,得仔细核对文件夹路径、文件名拼写。
  • 确认目标文件夹确实存在,并且你的程序有访问该文件夹的权限。

内容的提问来源于stack exchange,提问作者Joe James

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:38:49