Python 设置保存文件目录和数组
我是Python新手,这是我的第一个脚本。我很想让它工作,希望能得到一些支持,帮助我进入语言领域 下面的脚本将url数据保存到csv,接下来我要做的两件事是Python 设置保存文件目录和数组,python,arrays,directory,Python,Arrays,Directory,我是Python新手,这是我的第一个脚本。我很想让它工作,希望能得到一些支持,帮助我进入语言领域 下面的脚本将url数据保存到csv,接下来我要做的两件事是 指定本地计算机上要保存到的文件夹,这样我就不需要py了。文件位于同一目录中。为了便于讨论,让我们说我不想保存到c:\myfiles,它们.py文件位于同一台机器上的任何其他位置 我想了解如何在python中构建变量数组并循环使用我的ASXCode变量。首先,假设我有CSL.ax和BHP.ax作为元素。最终,我想从外部源(如txt文件或SQL
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))
如果您想对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")
您是否尝试过
local\u filename=“c:\myfiles\foobar.csv”
将文件保存到其他文件夹中?对于第二个问题,我不明白你不能做什么。你能说得更准确些吗?嗨,帕特里克,提前谢谢你。local_filename=“c:\myFiles\CSL.csv”可以工作,但当我使用local_filename=“c:\myFiles\”+ASXCode+“.csv”时,扫描字符串文字时会出现错误EOL。如果我取出c:\myfiles末尾的\,它会运行,但会将我的文件保存到c:\并将myfile添加到文件名中。我一定错过了一些简单的东西。感谢我的第二部分,我想为变量ASXCode设置类似的内容。e、 g.ASXCode=('CSL,'BHP'),循环之后是ASXCode中每个元素的其余代码。也许我是从其他语言的角度考虑的,还不知道如何用Python正确地处理它。是的。“\”是一个转义字符(即\”
将“
放入字符串中)。你应该把每个`\``都加倍(我以前的答案是错的)。试试“c:\\myfiles\\foobar\\”+ASXCode+“.csv”
谢谢Patrick,如果我想弄明白的话,我早就走投无路了。节省了我一堆时间。嗨,帕特里克,我刚带着for循环到达那里,你的解决方案就出现了。在for循环中还有一件事,假设我想让所有代码都循环,那么这就行了。但是,如果假设有10行代码,我希望循环前5行,然后运行剩余的非循环代码,那么它是否像在第5行之后放置“else”一样简单?我说得对吗?Python将循环缩进比更多的所有内容。如果你想在循环之外找到一些代码,就不要缩进它。我已经编辑了我的答案。