You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python实现多股票数据批量导出为不同文件名CSV的方法求助

嘿,很高兴看到你已经搞定了单只股票数据的提取与导出!针对你想自动循环处理300多只股票、每只单独导出CSV的需求,我来给你梳理一套实用的解决方案:

核心思路

其实逻辑很清晰:把所有要处理的股票代码整理成一个列表,然后通过循环遍历这个列表,对每只股票重复执行你已经掌握的提取逻辑,关键是给每只股票生成专属的CSV文件名,避免数据被覆盖。

优化后的代码示例

我帮你把原来的代码改成了循环版本,还加了新手友好的容错处理:

import investpy
# 如果需要控制请求频率,可添加此模块
# import time

# 1. 准备你的股票列表:把300多只股票代码都放这里
# 后续会讲如何从文件批量读取,不用手动输入
stock_list = ['JFC', 'ABC', 'BDO', 'SM']  # 替换成你的完整股票代码列表

# 2. 定义通用参数(不用每次循环重复写)
country = 'philippines'
from_date = '25/11/2020'
to_date = '18/12/2020'

# 3. 循环处理每一只股票
for stock_code in stock_list:
    try:
        # 提取当前股票的历史数据
        stock_data = investpy.get_stock_historical_data(
            stock=stock_code,
            country=country,
            from_date=from_date,
            to_date=to_date
        )
        
        # 导出到专属CSV文件(比如JFC_historical_data.csv)
        stock_data.to_csv(f"{stock_code}_historical_data.csv")
        print(f✅ 成功导出 {stock_code} 的数据到 {stock_code}_historical_data.csv")
        
        # 可选:添加1秒延迟,避免请求过于频繁被限制
        # time.sleep(1)
        
    except Exception as error:
        # 某只股票处理失败时,不会中断整个循环,还能看到错误原因
        print(f❌ 处理 {stock_code} 时出错:{str(error)}")
额外实用技巧
  1. 从文件批量读取股票列表:如果300多只股票代码存在Excel或CSV里,不用手动敲到代码里,用pandas就能轻松读取:
import pandas as pd
# 假设你的股票列表存在stock_list.csv里,列名为"code"
stock_df = pd.read_csv("stock_list.csv")
stock_list = stock_df['code'].tolist()
  1. 为什么替换sys.stdout重定向?:你原来的代码用sys.stdout写文件,其实pandas的DataFrame自带to_csv()方法,更直接稳定,能自动处理CSV的格式问题,比打印输出靠谱多啦。

  2. 容错处理的必要性:加try-except块是为了防止某一只股票代码无效、网络波动等问题导致整个循环崩溃,这样你能精准定位出错的股票,不影响其他股票的处理。

内容的提问来源于stack exchange,提问作者Leo M

火山引擎 最新活动