pandas.read_csv
功能非常灵活,最近开始支持网址输入here
df = pd.read_csv('http://www.somefile.csv')
我试图在源代码中找到处理此案例的地方。这是我目前所知道的:
1)read_csv
是由_make_parser_function
io/parsers.py
_make_parser_function
生成的相当通用的包装器
2)_read(filepath_or_buffer, kwds)
生成的函数将数据读取委托给io/parsers.py
_read(filepath_or_buffer, kwds)
3)此函数TextFileReader
创建TextFileReader.read()
并返回TextFileReader
的结果。但是,io/html.py
似乎只负责文本文件。它提供了处理各种类型压缩的功能,但我没有看到任何检查URL输入。
4)另一方面,_read(obj)
包含一个函数html
,它显然是访问URL并返回http查询的结果。
在我看来,解决这个问题的简单方法是检查输入字符串是否为URL,如果是,则调度到read_csv
模块;但是,在追踪UIButton
时,我无法找到这种情况。有人能指出我正确的方向吗?
答案 0 :(得分:1)
你错过了2到3之间的一步。
2.5)_read
calls get_filepath_or_buffer()
其中,网址被识别并读取。
filepath_or_buffer, _, compression = get_filepath_or_buffer(
filepath_or_buffer, encoding, compression)
get_filepath_or_buffer()
is defined in pandas.io.common
:
def get_filepath_or_buffer(filepath_or_buffer, encoding=None,
compression=None):
"""
If the filepath_or_buffer is a url, translate and return the buffer.
Otherwise passthrough.
Parameters
----------
filepath_or_buffer : a url, filepath (str, py.path.local or pathlib.Path),
or buffer
encoding : the encoding to use to decode py3 bytes, default is 'utf-8'
Returns
-------
a filepath_or_buffer, the encoding, the compression
"""
...