【发布时间】:2020-06-22 09:18:13
【问题描述】:
我有一个 huuuuuge csv 在线,我不想逐行阅读它而没有下载它。但是这个文件在代理后面。 我写了这段代码:
import requests
import pandas as pd
import io
cafile = 'mycert.crt'
proxies = {"http":"http://ipproxy:port", "https":"http://ipproxy:port"}
auth = HttpNtlmAuth('Username','Password')
url = 'http://myurl/ressources.csv'
content = requests.get(url, proxies=proxies, auth=auth, verify=cafile).content
csv_read = pd.read_csv(io.StringIO(content.decode('utf-8')))
pattern = 'mypattern'
for row in csv_read:
if row[0] == pattern:
print(row)
break
上面的代码可以工作,但是 'content = requests.get(...' 行需要很多时间!因为 csv 文件的大小。
所以我的问题是: 是否可以通过代理逐行读取在线csv?
最好的方法是,我希望读取第一行,检查它是否等于我的模式,如果是 = 中断,如果不是 = 读取第二行,依此类推。
感谢您的帮助
【问题讨论】: