我是第一个脚本中的Python新手。我很想让它发挥作用,并希望寻求一些支持来帮助我打破这种语言。
我的下面的脚本将网址数据保存到csv,接下来要做的就是我想做的事情。
指定要保存到的本地计算机上的文件夹,因此我不需要py。文件在同一目录中。让我们争辩说我不想保存到c:\ myfiles,而且.py文件位于同一台机器上的任何其他地方。
我想了解如何在python中构建变量数组并循环遍历ASXCode变量。首先让我说我有CSL.ax和BHP.ax作为元素。最终我想从外部源(如txt文件或SQL表)传递此信息,但是现在为了帮助我学习,我对这个脚本中的静态数组很满意(宝贝步骤)。我假设我需要一个For循环或类似的东西来迭代我的代码中的元素。
我不是要求任何人为我做这一切,关于方法/功能和程序流程的线索将很好地帮助我解决问题。
谢谢,
Bassmann
import csv
import os
import urllib.request, urllib.parse, urllib.error
ASXCode = 'CSL'
local_filename = "Intra_" + ASXCode + ".csv"
url = ('http://chartapi.finance.yahoo.com/instrument/1.0/' + ASXCode +
'.ax/chartdata;type=quote;range=15d/csv')
temp_filename, headers = urllib.request.urlretrieve(url)
with open(temp_filename, 'r', newline='') as inf, \
open(local_filename, 'w', newline='') as outf:
reader = csv.reader(inf)
writer = csv.writer(outf)
for _ in range(32): # skip first 32 rows
next(reader)
writer.writerows(reader) # copy the rest
os.remove(temp_filename) # clean up
print('{} downloaded'.format(local_filename))
答案 0 :(得分:0)
如果你想为不同的ASXCode值执行相同的代码,你可以这样做:
ASXCodes = ('CSL', 'XXX', 'YYY')
for ASXCode in ASXCodes:
local_filename = "c:\\myfiles\\foobar\\" + ASXCode + ".csv"
print("Saving to {}".format(local_filename))
with open(local_filename, 'w', newline='') as outf:
...
print("done")