You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何直接流式读取远程URL文件而非下载到本地?

无需下载直接流式读取远程文件的Python方法

对于远程HTTP文件,你可以用以下两种方式实现流式读取,不用先下载到本地:

方法1:使用requests库(推荐,语法简洁)

requests是Python常用的HTTP请求库,支持流式传输,写法和本地读取文件很像。

首先确保已安装requests(未安装的话执行pip install requests),然后用以下代码:

import requests

url = "http://.../file.jpg"
# stream=True开启流式传输,不会一次性把整个文件拉进内存
with requests.get(url, stream=True) as r:
    r.raise_for_status()  # 检查请求是否成功,失败会抛出异常
    data = r.read()  # 读取全部文件内容到变量,和你本地的file.read()逻辑一致

如果是大文件,推荐分块读取以避免占用过多内存:

import requests

url = "http://.../file.jpg"
with requests.get(url, stream=True) as r:
    r.raise_for_status()
    # 每次读取1MB的块,可根据需求调整chunk_size
    for chunk in r.iter_content(chunk_size=1024*1024):
        # 在这里处理每个数据块,比如直接处理流或者写入本地文件
        # process_chunk(chunk)

方法2:使用Python标准库urllib.request

如果不想安装第三方库,用Python自带的标准库就能实现:

from urllib.request import urlopen

url = "http://.../file.jpg"
with urlopen(url) as response:
    data = response.read()  # 读取全部内容
    # 分块读取的写法:
    # while True:
    #     chunk = response.read(1024*1024)
    #     if not chunk:
    #         break
    #     # 处理chunk

以上两种方式都是直接从远程URL流式获取数据,不会将文件保存到本地硬盘,和你本地用open()读取文件的资源管理逻辑一致,都通过with语句自动关闭连接。

内容的提问来源于stack exchange,提问作者user12845915

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 13:54:21