优草派  >   Python

python不同大小文件的复制方法

刘芳            来源:优草派

Python是一种解释型语言,不同大小文件的复制方法在Python中也有所不同。对于小文件,可以使用Python自带的shutil库的copy()方法或者OS库的命令行方法实现复制。但对于大文件,则需要分块读取和写入。在本文中,将从多个角度分析Python不同大小文件的复制方法。首先,对于小文件,可以简单地使用shutil库的copy()方法或者OS库的命令行方法实现复制。shutil库是Python自带的一种高级的文件操作模块,copy()方法可以直接复制源文件到目标文件,如下所示:

import shutil

python不同大小文件的复制方法

shutil.copy('source_file_path', 'target_file_path')

当然,也可以使用OS库的命令行方法实现复制,如将源文件复制到目标文件夹的命令行如下:

import os

os.system('cp source_file_path target_file_path')

但是,对于大文件,上述方法并不适用,会出现内存崩溃的情况。因此,需要分块读取和分块写入,即将源文件分成多块,逐块读取并写入到目标文件中。实现方法如下:

def copy_large_file(src_file, dst_file):

with open(src_file, 'rb') as fsrc:

with open(dst_file, 'wb') as fdst:

while True:

block = fsrc.read(4096)

if block:

fdst.write(block)

else:

break

另外,为了更好地显示复制进度,可以使用tqdm库实现,如下所示:

from tqdm import tqdm

def copy_large_file_with_progress(src_file, dst_file):

with open(src_file, 'rb') as fsrc:

with open(dst_file, 'wb') as fdst:

for block in tqdm(iterable=fsrc.read(4096),desc='Copying', unit='kB'):

fdst.write(block)

以上就是Python不同大小文件的复制方法,根据文件大小的不同,选择合适的方法进行文件复制即可。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行