gpt4 book ai didi

python - 在 Python Pandas 的源代码中,pd.read_csv 处理的 URL 在哪里?

转载 作者:可可西里 更新时间:2023-11-01 17:26:31 25 4
gpt4 key购买 nike

pandas.read_csv 函数非常灵活,最近开始支持 URL 输入,如 here 所述

df = pd.read_csv('http://www.somefile.csv')

我试图在源代码中找到处理这种情况的地方。这是我目前所知道的:

1) read_csv 是一个相当通用的包装器,由 io/parsers.py 中的 _make_parser_function 生成

2) _make_parser_function 生成的函数将数据读取委托(delegate)给函数 _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,如果是,则分派(dispatch)给 html 模块;但是,在通过 read_csv 进行跟踪时,我找不到发生这种情况的位置。谁能指出我正确的方向?

最佳答案

你错过了 2 和 3 之间的一步。

2.5) _read calls get_filepath_or_buffer()其中 url 被识别并读取。

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
"""
...

关于python - 在 Python Pandas 的源代码中,pd.read_csv 处理的 URL 在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45720427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com