用python复制一个文件 并记录下传输速度
创始人
2024-06-12 15:14:26
0

在Python中,你可以使用shutil模块来复制文件,并使用time模块来测量复制过程所需的时间,从而计算出传输速度。以下是一个简单的示例代码,演示了如何复制一个文件并计算其传输速度:

import shutil  
import os  
import time  
  
def copy_file_with_speed(src, dst):  
    # 记录开始时间  
    start_time = time.time()  
  
    # 使用shutil模块复制文件  
    shutil.copy2(src, dst)  # 使用copy2可以保留文件的元信息,如时间戳、权限等  
  
    # 记录结束时间  
    end_time = time.time()  
  
    # 计算传输时间(秒)  
    elapsed_time = end_time - start_time  
  
    # 获取文件大小(字节)  
    file_size = os.path.getsize(src)  
  
    # 计算传输速度(字节/秒)  
    speed = file_size / elapsed_time if elapsed_time > 0 else float('inf')  # 避免除以零  
  
    # 转换为KB/s, MB/s等,这里只展示字节/秒  
    speed_str = f"{speed:.2f} bytes/s"  
  
    print(f"File copied from {src} to {dst} in {elapsed_time:.2f} seconds")  
    print(f"Transfer speed: {speed_str}")  
  
# 使用示例  
src_file = 'path_to_source_file.txt'  # 替换为你的源文件路径  
dst_file = 'path_to_destination_file.txt'  # 替换为你的目标文件路径  
copy_file_with_speed(src_file, dst_file)

注意:这个脚本会覆盖目标路径中已存在的同名文件。如果你不希望这样,可以在复制前检查目标文件是否存在,并决定是否要覆盖它。

另外,传输速度的计算可能会受到许多因素的影响,如磁盘I/O速度、文件系统类型、文件大小、网络延迟(如果文件位于远程服务器上)等。因此,这个脚本提供的速度只是一个近似的值。

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...