Python 尝试使用CSV文件从URL下载数据

Python 尝试使用CSV文件从URL下载数据,python,Python,我对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

我对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)
干杯

编辑


布莱恩和阿尔伯特解决了我最初的问题。不过,我现在还有一个问题。当我下载上面列出的CSV文件时,它位于“零息票下”利率-分析系列-2009至当前-F17”中,是F-17收益率CSV,我看到它有5本工作簿,实际上我只想收集第5本工作簿中的数据。我有办法做到这一点吗?干杯。

这可能是因为你的开场模式

根据:

“w”仅用于写入(将使用具有相同名称的现有文件 删除)

您应该使用append(
a
)模式将其追加到文件末尾

“a”打开要追加的文件;写入文件的任何数据都是 自动添加到末尾


另外,由于您尝试下载的文件是csv文件,因此不需要转换它。

我只能使用Python 3测试我的代码。然而,唯一的区别应该是,因此我使用打开所需的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)

@阿尔贝回答得很好。我已经将其转换为等效的Python2.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)

您应该考虑使用而不是urllib2I,我将其更改为
,将open(“AusCentralbank.csv”,“wb”)作为f
,但我仍然没有在csv文件中获得任何输出。你知道为什么会这样吗?你设置程序的方式有一些问题。查看my或@albert的答案,了解更完整的操作方法。对于每一行输入,您都会重新打开(即销毁)输出文件。你最后的结果可能是空行…对不起。关于我最初的问题,我实际上还有一个要求。我已编辑了原始问题以包含此内容。此时,我将为其创建一个新问题。我真的不认为除了我以外的任何人会看到这一点,因为这个问题已经过时了,并且被标记为完整的。我不知道有什么办法可以满足你的要求。非常感谢你的回答。我已经补充了我最初的问题,不知道我是否能得到你的帮助。谢谢,请打开一个新问题,因为这不是一个论坛,而是一个问答平台。请记住,提供指向您遇到问题的数据的链接。但是,我在csv-file()中找不到上述五本工作簿。Excel文件有四个工作簿,其中包含这三个csv文件的数据和其他注释。