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

如何用Python交互式显示网络驱动器文件的读取速度?

如何在Python读取文件时交互式显示读取速度?

要实现读取网络驱动器文件时实时显示速度,核心是分块读取文件、累计读取量并计算单位时间内的读取字节数,以此交互式输出当前速度。以下是具体实现方案:

实现思路

  1. 分块读取文件(避免一次性加载大文件占用过多内存)
  2. 记录读取开始时间和累计读取字节数
  3. 每读取一块就计算并刷新显示当前速度
  4. 利用print的end='\r'参数实现同一行刷新输出,避免刷屏

完整代码示例

import time

file_path = "path/to/network/drive/file"
block_size = 1024 * 1024  # 设为1MB块大小,可根据需求调整
total_read = 0
start_time = time.time()

with open(file_path, "rb") as f:
    while chunk := f.read(block_size):
        total_read += len(chunk)
        # 若要模拟手动复制到本地,取消下方注释并替换local_path为本地路径
        # with open(local_path, "ab") as local_f:
        #     local_f.write(chunk)
        
        # 计算并实时刷新显示速度
        elapsed_time = time.time() - start_time
        if elapsed_time > 0:
            speed_mb = total_read / (1024 * 1024) / elapsed_time
            print(f"已读取: {total_read / (1024*1024):.2f} MB | 当前速度: {speed_mb:.2f} MB/s", end='\r')
    
    # 读取完成后输出最终统计
    total_time = time.time() - start_time
    avg_speed = total_read / (1024 * 1024) / total_time
    print(f"\n读取完成!总大小: {total_read / (1024*1024):.2f} MB | 总耗时: {total_time:.2f} s | 平均速度: {avg_speed:.2f} MB/s")

关键说明

  • 块大小调整:1MB是均衡的选择,太大可能增加内存压力,太小会提升IO频次影响统计准确性
  • 对比手动复制:若要和手动复制速度对比,需开启代码中写入本地文件的逻辑,确保操作和手动复制一致
  • 速度参考:实时速度反映当前读取状态,平均速度更能体现整体读取性能,两者结合可全面评估网络驱动器读取效率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 12:19:56