Python循环优化需求:自动处理股票数据采集与差异化文件名存储
解决你的Python循环与动态文件存储问题
嗨,我太懂你现在的困扰了——手动重复写变量和文件代码不仅繁琐,还容易埋下出错的隐患,这刚好是循环能大展身手的场景!咱们一步步搞定你的两个问题:
1. 当然存在无需手动创建变量的循环!
你现在代码里重复定义的R/R2、data/data2这类变量完全没必要,用一个循环就能把所有重复逻辑打包处理。我们可以用计数器跟踪循环次数,或者直接用while True实现持续的每小时采集,所有数据处理逻辑都放在循环内部,不用每次手动新建变量。
2. 循环轻松生成名称不同的文本文件
只需要在文件名里嵌入循环的计数器变量就行,比如用f"Marketcap{count}.txt"的写法,每次循环都会自动生成Marketcap1.txt、Marketcap2.txt……这样依次递增的文件名。
优化后的示例代码
import requests import json import time count = 1 # 初始化计数器,用来标记文件序号 while True: # 每次循环复用同一套变量,不用手动创建R2、data2 response = requests.get("https://api.website.com/v1/....") data = response.json() # 遍历打印股票信息 for item in data: ticker = item['symbol'] cost = item['price_usd'] print(f"{ticker}\t: {cost}") # 动态生成带序号的文件名并保存数据 filename = f"Marketcap{count}.txt" with open(filename, 'w') as outfile: json.dump(data, outfile, indent=2) print(f"数据已保存到 {filename}") count += 1 # 计数器自增,为下一次生成新文件名做准备 time.sleep(3600) # 等待1小时后再次采集
代码小说明
while True会让程序持续运行(除非你手动终止),完美匹配你每小时采集的需求count变量负责记录循环次数,确保每次生成的文件名唯一不重复- 所有请求、数据处理逻辑都封装在循环内,代码更简洁,后期维护也方便
- 用f-string(
f"...")动态拼接文件名,语法直观易懂
如果需要程序运行指定次数后自动停止,也可以把while True改成for count in range(1, 11)这样的循环(比如采集10次就停止)。
内容的提问来源于stack exchange,提问作者jeux
相关产品推荐
相关产品推荐

