簡體   English   中英

使用python下載.csv文件

[英]Download .csv file using python

我正在嘗試下載.csv文件並將其保存到我的計算機上。 但是,當我運行以下腳本時,出現錯誤“錯誤:行包含NULL字節”。 我做錯了什么?

import csv
import urllib2

url = 'http://wildfire.alberta.ca/reports/activedd.csv'
response = urllib2.urlopen(url)
cr = csv.reader(response)

for row in cr:
    print row

您嘗試下載的文件為UTF-16格式,而CSV模塊不是為此設計的。 您需要將其從UTF-16解碼為其他格式。 例如:

import csv
import codecs
import urllib2

url = 'http://wildfire.alberta.ca/reports/activedd.csv'
response = urllib2.urlopen(url)
cr = csv.reader([x.strip() for x in codecs.iterdecode(response, 'UTF-16')])

data = [x for x in cr]

# Manipulate the data here

# Now to save the CSV:
with open('outputfile.csv', 'wb') as output:
    writer = csv.writer(output)
    writer.writerows(data)

如果只需要下載文件而不進行操作,則有更好的方法(請參見minitoto的答案)。

這是一個示例,必須手動刪除換行符才能正常工作,所以我敢肯定有更好的方法,但這是主要問題

我猜最簡單的方法是使用urlretrieve

import urllib

url = 'http://wildfire.alberta.ca/reports/activedd.csv'
urllib.urlretrieve(url, "activedd.csv")

這就是我所做的。 懶惰的方式。

import urllib2

url = 'http://wildfire.alberta.ca/reports/activedd.csv'
response = urllib2.urlopen(url)
with open('activeddData.csv','w') as csvFile:
    for line in response.readlines():
        csvFile.write(line)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM