【发布时间】:2015-08-26 10:51:47
【问题描述】:
我是 Python 新手,这在我的第一个脚本中。我很想让它工作,并希望寻求一些支持来帮助我进入这门语言。
我下面的脚本将一个 url 数据保存到 csv 中,接下来我想做的两件事是。
在本地机器上指定要保存的文件夹,这样我就不需要 py.同一目录下的文件。让我们为了争论说我不想保存到 c:\myfiles 并且它们 .py 文件位于同一台机器上的其他任何地方。
我想了解如何在 python 中构建变量数组并循环遍历我的 ASXCode 变量。首先,假设我有 CSL.ax 和 BHP.ax 作为元素。最终,我想从外部源(如 txt 文件或 SQL 表)传递它,但现在为了帮助我的学习,我对这个脚本中的静态数组感到满意(小步骤)。我假设我需要一个 For 循环或类似的循环来遍历我的代码中的元素。
我不是要求任何人为我做这一切,有关方法/功能和程序流程的线索将非常有助于我解决问题。
谢谢,
巴斯曼
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))
【问题讨论】:
-
您是否尝试过
local_filename="c:\myfiles\foobar.csv"将文件保存在另一个文件夹中?对于第二个问题,我不明白你不能实现什么。你能说得更准确点吗? -
嗨,帕特里克,提前致谢。 local_filename = "c:\myFiles\CSL.csv" 工作,但是当我使用 local_filename = "c:\myFiles\" + ASXCode + ".csv" 时,我在扫描字符串文字时收到错误 EOL。如果我取出 c:\myfiles 末尾的 \,它会运行,但会将我的文件保存到 c:\ 并将 myfile 添加到文件名中。我一定错过了一些简单的东西。谢谢巴斯曼
-
对于我的第二部分,我想为变量 ASXCode 设置类似的东西。例如ASXCode = ('CSL, 'BHP'),然后循环 ASXCode 中每个元素的其余代码。也许我正在考虑其他语言,但不确定如何在 Python 中正确处理它。
-
是的。 ` \ ` 是一个转义字符(即
\"会将"放入字符串中)。你应该把每个`\`加倍(我之前的回答是错误的)。试试"c:\\myfiles\\foobar\\" + ASXCode + ".csv" -
谢谢帕特里克,我会在很长一段时间里跌跌撞撞地试图弄清楚。节省了我大量的时间。