更多课程 选择中心


Python培训

400-996-5531

Python 拷贝文件的3种常用方法


我想大家在工作中经常会需要有一些关于文件拷贝之类的操作或者去写这方面的插件,所以今天为大家来讲一讲关于使用python来拷贝文件常用的3种方法,以及这三种方法之间速度的对比,相信大家看完之后会有所收获。

1. 使用Python标准库 shutil

相信大多数朋友都在使用这个shutil的copytree和copy2函数进行拷贝操作,copytree函数是用来拷贝文件夹的,而copy2可以进行单个文件的拷贝。使用方法也很简单,都是有两个参数,第一个参数是要拷贝的路径,另外一个参数是拷贝到的路径。
eg:

import shutil

shutil.copytree("D:/testa", "D:/testb")
shutil.copy2("D:/testa/a.jpg", "D:/testb/a.jpg")

2. 使用cmd命令 robocopy

对于cmd的复制操作,经常写bat的朋友们肯定会想到的是copy和xcopy,虽然这两个都很好用,但是都太古老了,而且速度都很慢。微软在vista后内嵌了一个拷贝神器robocopy,这个神器在win7后还支持了多线程。

关于他的有哪些参数我们可以在cmd中输入robocopy /?进行查看。

大家也可以在这个链接里面查看到用法:
http://baike.baidu.com/item/robocopy

这里我给大家一个用python调用这个命令的简单小例子,大家可以根据自己生产中的情况自己添加其中的一些参数。
eg:

import osdef robocopy(source, target, thread=8):

    os.system("robocopy %s %s /MT:%d /E" % (source.replace("/", "\\"), target.replace("/", "\\"), thread))

robocopy("D:/source_test", "D:/copy_test")

注意:cmd中的命令只认\,而不认/ ,因此路径需要转成成“\\”。

3.使用第三方工具 fastcopy

fastcopy这个工具是一款免费开源的文件拷贝工具,最重要的是他支持命令行。
fastcopy下载地址:
#/tools/fastcopy.html

关于参数命令大家可以输入fastcopy /?或者参考下面这个文章进行学习。
#/jingyan/125518.html

这里依然给大家一个Python调用的小例子,供大家学习。
eg:

def fastcopy(source, target, buf=128):
    os.system(r"D:\fastcopy\fastcopy /cmd=noexit_only /auto_close /bufsize=%d %s /to=%s" % (
        buf, source.replace("/", "\\"), target.replace("/", "\\")))

fastcopy("D:/source_test", "D:/copy_test")

基本最常用的就是这3种方法,然后我们来说下这3种拷贝的速度,最近几天在公司正好做了这3个方法的用时测试,这里我直接给大家看一下。(文件都是从服务拷到本地,数据中的值单位为秒)

由上面的数据可以看出,当文件较小时,robocopy拷贝速度最快;当文件越来越大后,fastcopy速度就超过了robocopy,因此,建议大家根据实际情况来选择对应的拷贝方法。

没有最好的,只有最合适的~

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Python语言优势有哪些?该怎样学习Python语言
下一篇:Python多线程编程基础:如何创建线程?

Python IDE推荐7个你可能会错过的Python IDE

Python面试题之Python中爬虫框架或模块的区别

2021年Python面试题及答案汇总详解

python数据分析,你需要这些工具

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省