Python遍历目录CSV文件代码无输出问题求助
解决批量读取目录下CSV文件无输出的问题
你好呀,我来帮你排查这个问题~你说单个指定文件能正常读取,但遍历INDEX_DIR目录下的CSV文件时既没有输出也没报错,这大概率是文件路径拼接错误导致的!
问题根源
os.listdir(INDEX_DIR)返回的只是目录里的纯文件名(比如2000Q1.csv),而不是完整的文件路径。当你直接用open(filename)时,Python会在当前工作目录里查找这个文件,而不是你指定的INDEX_DIR目录——相当于程序根本没找到目标文件,自然不会执行后续的读取逻辑,也不会触发错误(因为你只判断了文件名后缀,没校验文件是否存在)。
修正后的代码
用os.path.join()把目录路径和文件名拼接成完整路径就可以解决问题啦,这个方法还能自动适配Windows/macOS/Linux的路径分隔符,非常稳妥:
import os import csv sec_urls = [] INDEX_DIR = "./index" # 替换成你的实际目录路径 for filename in os.listdir(INDEX_DIR): if filename.endswith('.csv'): # 拼接完整文件路径 full_path = os.path.join(INDEX_DIR, filename) # 可选:打印正在处理的文件,方便排查 print(f"正在处理文件: {full_path}") with open(full_path, newline='') as csvfile: reader = csv.reader(csvfile, delimiter=',') for line in reader: # 额外加个判断,避免行数据不完整导致索引错误 if len(line) >= 5: url = line[4].strip() sec_urls.append(url) print(url, '已下载并添加到列表')
额外小建议
- 加上
len(line) >= 5的判断,能避免某些CSV行数据不完整时,出现IndexError索引越界的错误。 - 可以先打印
full_path确认路径是否正确,这样能快速排查是否还有路径相关的问题。
内容的提问来源于stack exchange,提问作者Cornflour




