我正在编写我的第一个Python文件,它基本上抓取了一些webdata并保存到.csv文件中(并且正在工作,见下文)。
数据结构是一致的,但有一个由大约17行组成的标题。我想将csv导入SQL,但是它的头文件数据有问题,即使我告诉它开始从第18行读取等,除非我手动删除第1-17行,否则它无法看到数据。
我认为最简单的选择就是删除第1-17行作为我下面的Python代码的一部分。但我不知道从哪里开始,所以任何提示赞赏。
import urllib.request, urllib.parse, urllib.error
ASXCode = 'CSL'
url = 'http://chartapi.finance.yahoo.com/instrument/1.0/' + ASXCode + '.ax/chartdata;type=quote;range=1d/csv'
urllib.request.urlretrieve(url, "Intra_" + ASXCode + ".csv")
答案 0 :(得分:0)
您可以这样做,首先将webdata下载并保存到临时文件中,然后将其复制到最终目标文件,但跳过开头的前17行。
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=1d/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(17): # skip first 17 rows
next(reader)
writer.writerows(reader) # copy the rest
os.remove(temp_filename) # clean up
print('{} downloaded'.format(local_filename))