[英]Trying to download data from URL with CSV File
我是Python的新手,并且有一个问题,为什么以下代码不会在csv
文件中产生任何输出。 代码如下:
import csv
import urllib2
url = 'http://www.rba.gov.au/statistics/tables/csv/f17-yields.csv'
response = urllib2.urlopen(url)
cr = csv.reader(response)
for row in cr:
with open("AusCentralbank.csv", "wb") as f:
writer = csv.writer(f)
writer.writerows(row)
干杯。
编辑 :
布里恩和艾伯特解决了我的初始问题。 但是,我现在还有一个问题。 当我在零息票“利率 - 分析系列 - 2009年至今”下载上面列出的“ http://www.rba.gov.au/statistics/tables/#interest-rates ”中的CSV文件时 - F17“并且是F-17 Yields CSV我看到它有5个工作簿,我实际上只想收集第5工作簿中的数据。 有没有办法可以做到这一点? 干杯。
我只能使用Python 3测试我的代码。但是,唯一的差异应该是urllib2
,因此我使用urllib.respose
来打开所需的url。
变量html
是bytes
类型,通常可以以二进制模式写入文件。 另外,你的源代码已经是一个csv文件了,所以不需要以某种方式转换它:
#!/usr/bin/env python3
# coding: utf-8
import urllib
url = 'http://www.rba.gov.au/statistics/tables/csv/f17-yields.csv'
response = urllib.request.urlopen(url)
html = response.read()
with open('output.csv', 'wb') as f:
f.write(html)
这可能是因为你的开放模式。
根据文件 :
'w'仅用于写入(将擦除具有相同名称的现有文件)
您应该使用append( a
)模式将其附加到文件的末尾。
'a'打开文件进行追加; 写入文件的任何数据都会自动添加到最后。
此外,由于您尝试下载的文件是csv文件,因此您无需转换它。
@albert有一个很好的答案。 我已经将它转换为等效的Python 2.x代码。 你在原来的程序中做了太多的工作; 由于该文件已经是csv,因此您无需进行任何特殊工作即可将其转换为csv。
import urllib2
url = 'http://www.rba.gov.au/statistics/tables/csv/f17-yields.csv'
response = urllib2.urlopen(url)
html = response.read()
with open('AusCentralbank.csv', 'wb') as f:
f.write(html)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.