Google Colab遍历Drive CSV文件夹遇FileNotFoundError的修复方案
修复Google Colab中遍历CSV文件添加技术指标的错误
核心错误分析
你遇到的FileNotFoundError本质是文件路径不完整:os.listdir(test_dir)返回的只是文件夹里的文件名(比如Copy of 138SL.csv),而不是完整的绝对路径。当你的TAfunction尝试用这个文件名读取文件时,Python会在当前工作目录(不是你的Drive文件夹)里查找,自然找不到对应的文件。
另外还有两个小问题:
- 函数名拼写不一致:定义的是
TAfunction,调用时写成了TA_function - 输出路径不符合需求:你想要导出到另一个文件夹,但原代码是直接覆盖原CSV文件
完整修复步骤及代码
1. 先确保挂载Google Drive
在Colab中必须先挂载Drive才能访问里面的文件,先运行这段代码:
from google.colab import drive drive.mount('/content/drive')
运行后会弹出授权链接,按照提示完成挂载即可。
2. 修正后的完整代码
import os import pandas as pd import pandas_ta as ta from google.colab import files def TAfunction(data_path, output_path): # 读取完整路径的CSV文件 stock_df = pd.read_csv(data_path) # 定义技术指标策略 CustomStrategy = ta.Strategy( name="RSI Strat", description="RSI, BBands, MACD", ta=[ {"kind":"rsi"}, {"kind":"bbands", "length": 20}, {"kind":"macd", "fast": 8, "slow":21}, ] ) # 添加技术指标 stock_df.ta.strategy(CustomStrategy) # 导出到指定的输出路径 stock_df.to_csv(output_path, encoding='utf-8-sig', index=False) # 如果需要下载到本地,可保留这行,但循环中建议批量处理后再下载 # files.download(output_path) # 定义输入和输出文件夹路径 input_dir = '/content/drive/MyDrive/Colab Notebooks/Stocks CSVs/Stocks/' output_dir = '/content/drive/MyDrive/Colab Notebooks/Stocks CSVs/UpdatedStocks/' # 确保输出文件夹存在,如果不存在就创建 if not os.path.exists(output_dir): os.makedirs(output_dir) # 遍历输入文件夹中的CSV文件 for file in os.listdir(input_dir): if file.endswith(".csv"): # 构造完整的输入和输出路径 input_file_path = os.path.join(input_dir, file) output_file_path = os.path.join(output_dir, file) # 调用处理函数 TAfunction(input_file_path, output_file_path) print("所有文件处理完成!")
关键修复点说明
- 完整路径构造:用
os.path.join()把文件夹路径和文件名拼接成完整的绝对路径,这样Python就能准确找到文件 - 函数名统一:把调用的
TA_function改成和定义一致的TAfunction - 分离输入输出路径:明确区分输入文件夹和输出文件夹,避免覆盖原文件,同时确保输出文件夹存在(用
os.makedirs()创建) - 可选优化:如果需要批量下载处理后的文件,建议循环完成后再批量操作,或者用zip打包后下载,避免循环中多次触发下载弹窗
内容的提问来源于stack exchange,提问作者Chase Ashley
相关产品推荐
相关产品推荐

