首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中摄取/导入特定于国家的Google Mobility文件

在Python中摄取/导入特定于国家的Google Mobility文件
EN

Stack Overflow用户
提问于 2021-09-13 05:45:25
回答 1查看 104关注 0票数 0

嗨,Stackoverflow社区,

我试图只将澳大利亚的google文件从:CSVs.zip (可在:https://www.google.com/covid19/mobility/上获得)导入Python中。然而,google现在提供了一个包含所有csv文件的文件夹。

我想知道是否有人能为我指出一个正确的方向如何导入一个文件在一个压缩文件夹在线。

我想实现这‘不下载’的压缩文件夹到我的电脑,然后导入AUS csv。想知道是否有一种方法可以使用代码来完成所有这些操作,所以每次我运行代码时,python都会从URL获取最新的AUS文件。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-13 06:05:44

看上去你想按顺序做三件事:

  1. 下载压缩文件
  2. 读取压缩文件
  3. 阅读澳大利亚的csv (假设你知道它的文件名)

我们可以使用python的内置模块来完成所有这些工作!

首先,用urllib.request下载文件

代码语言:javascript
复制
import urllib.request

with urllib.request.urlopen("https://www.gstatic.com/covid19/mobility/Region_Mobility_Report_CSVs.zip") as f:
    zip_data: bytes = f.read()

第二,阅读档案。zipfile可以帮你解决这个问题。

代码语言:javascript
复制
import zipfile
from io import BytesIO

z = zipfile.ZipFile(BytesIO(zip_data))

在这个步骤中,我们将zip_data (字节)包装在BytesIO (一个类似文件的对象)中,因为zipfile.ZipFile采用文件(字符串)、类文件对象或类路径对象的路径

最后,使用csv模块对csv文件进行解析。

代码语言:javascript
复制
from io import StringIO

with z.open("2020_AU_Region_Mobility_Report.csv") as au_csv:
    australia_data = csv.reader(StringIO(au_csv.read().decode("utf8")))

for row in australia_data:
    print(row)

我们解析csv的行有点复杂,因为csv.reader需要一个字符串迭代器,但是au_csv.read()返回一个字节。因此,我们必须对这些字节进行解码,然后将其转化为读者接受的内容。

将上述所有内容结合起来:

代码语言:javascript
复制
import csv
import urllib.request
import zipfile
from io import BytesIO, StringIO

# Download
with urllib.request.urlopen("https://www.gstatic.com/covid19/mobility/Region_Mobility_Report_CSVs.zip") as f:
    zip_data: bytes = f.read()

# Open zip file and parse csv
with zipfile.ZipFile(BytesIO(zip_data)) as z:
    with z.open("2020_AU_Region_Mobility_Report.csv") as au_csv:
        australia_data = csv.reader(StringIO(au_csv.read().decode("utf8")))

for row in australia_data:
    print(row)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69157799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档