[英]having problems downloading a csv file
所以我试图做一个功能,使用csv下载链接下载csv文件,然后基本上打印出来,将其分成几行,但是当我必须保存时遇到了问题
def download_data(csv_url):
response = request.urlopen(csv_url)
csv = response.read()
csv_str = str(csv)
lines = csv_str.split("\\n")
dest_url = r'data.csv'
fx = open(dest_url, 'r')
for line in lines:
fx.write(line + '/n')
fx.close()
当我给它csv链接时,它告诉我即使我应该下载它也无法找到文件/目录“ data.csv”。 运行Mac OS
您正在读取文件。 改变'r'
在fx = open(dest_url, 'r')
到'w'
fx = open(dest_url, 'w')
附带说明一下,您确实应该使用with
语句 。 一旦代码离开with
的作用域, with
将使文件对象关闭连接。 这样,您不必担心关闭连接。
def download_data(csv_url):
response = request.urlopen(csv_url)
with open('data.csv', 'w') as f:
f.write(str(response.read()))
尽管实际上,只要阅读文件并在屏幕上显示内容,就根本不需要保存文件。 只需将download_data
返回csv_str
。
最后看看内置的csv模块 。 它使生活变得轻松。
import csv
from io import StringIO
import requests
def download_data(csv_url):
return csv.reader(
StringIO(
requests.get(csv_url)
.text
), delimiter=','
)
for row in download_data('https://people.sc.fsu.edu/~jburkardt/data/csv/addresses.csv'):
print("| {} |".format(str(' | '.join(row))))
# Prints:
#
# | John | Doe | 120 jefferson st. | Riverside | NJ | 08075 |
# | Jack | McGinnis | 220 hobo Av. | Phila | PA | 09119 |
# | John "Da Man" | Repici | 120 Jefferson St. | Riverside | NJ | 08075 |
# | Stephen | Tyler | 7452 Terrace "At the Plaza" road | SomeTown | SD | 91234 |
# | | Blankman | | SomeTown | SD | 00298 |
# | Joan "the bone", Anne | Jet | 9th, at Terrace plc | Desert City | CO | 00123 |
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.