读取 .zip URL 中的两个文件:删除 PDF,保留 CSV
Read two files inside a .zip URL: delete the PDF, keep the CSV
我想下载、保存和清理一组数据集,这些数据集以 .zip 文件的形式存储在超过 150 个 URL 中。我的功能遵循这样的包文档:
import requests
def download_url(url, save_path, chunk_size = 128):
r = requests.get(url, stream=True)
with open(save_path, 'wb') as fd:
for chunk in r.iter_content(chunk_size=chunk_size):
fd.write(chunk)
但这不起作用。问题:'requests.get' 不是 return 我需要的 。我认为这可能会发生,因为 .zip 中有两个不同的文件:.csv 和 .pdf。 有没有办法读取这两个文件,删除 .pdf,只保存 .csv?
下面的代码为我做了:
from urllib.request import urlopen
from io import BytesIO
import zipfile37
import pandas as pd
dfs = {}
req = urlopen('https://cdn.tse.jus.br/estatistica/sead/odsele/votacao_secao/votacao_secao_2014_RJ.zip')
data = req.read()
zip_file = zipfile37.ZipFile(BytesIO(data))
for name in zip_file.namelist():
if name.lower().endswith('.txt'):
dfs[name] = pd.read_csv(zip_file.open(name), sep=";", header=None, encoding='latin1')
这是
的两周
谢谢!
我想下载、保存和清理一组数据集,这些数据集以 .zip 文件的形式存储在超过 150 个 URL 中。我的功能遵循这样的包文档:
import requests
def download_url(url, save_path, chunk_size = 128):
r = requests.get(url, stream=True)
with open(save_path, 'wb') as fd:
for chunk in r.iter_content(chunk_size=chunk_size):
fd.write(chunk)
但这不起作用。问题:'requests.get' 不是 return 我需要的 。我认为这可能会发生,因为 .zip 中有两个不同的文件:.csv 和 .pdf。 有没有办法读取这两个文件,删除 .pdf,只保存 .csv?
下面的代码为我做了:
from urllib.request import urlopen
from io import BytesIO
import zipfile37
import pandas as pd
dfs = {}
req = urlopen('https://cdn.tse.jus.br/estatistica/sead/odsele/votacao_secao/votacao_secao_2014_RJ.zip')
data = req.read()
zip_file = zipfile37.ZipFile(BytesIO(data))
for name in zip_file.namelist():
if name.lower().endswith('.txt'):
dfs[name] = pd.read_csv(zip_file.open(name), sep=";", header=None, encoding='latin1')
这是
谢谢!