【发布时间】:2023-03-12 19:20:01
【问题描述】:
pandas.read_csv 函数非常灵活,最近开始支持 URL 输入,如 here 所述
df = pd.read_csv('http://www.somefile.csv')
我试图在源代码中找到处理这种情况的地方。以下是我目前所知道的:
1) read_csv 是由_make_parser_function 在io/parsers.py 中生成的相当通用的包装器
2) _make_parser_function 生成的函数将数据的读取委托给 _read(filepath_or_buffer, kwds) 函数,该函数在 io/parsers.py 的其他地方定义
3) 这个函数_read(filepath_or_buffer, kwds) 创建一个TextFileReader 并返回TextFileReader.read() 的结果。但是,TextFileReader 似乎只负责文本文件。它提供了处理各种类型压缩的功能,但我没有看到任何检查 URL 输入的内容。
4) 另一方面,io/html.py 包含一个函数_read(obj),显然是访问一个 URL 并返回一个 http 查询的结果。
在我看来,这个问题的简单解决方案是检查输入字符串是否是 URL,如果是,则分派到 html 模块;但是,通过read_csv 进行跟踪时,我找不到发生这种情况的位置。有人能指出我正确的方向吗?
【问题讨论】: