利用python写一个剪切大量文件的小脚本,速度远超windows自带的剪切功能

博主今天需要将2.5w张高清图像挪到另外一个文件夹,在windows上剪切,粘贴操作,结果速度低到每秒剪切两张,大约需要4,5个小时才能剪切完成(主要是因为windows在文件操作的时候的缓存机制以及文件校验过程),想起之前利用python的shutil包,移动文件速度很快,试着写了一个小脚本,只花了20多分钟,速度简直吊打windows10的剪切,现在把代码贴出来分享下。

"""author:yuankun,function:将一个文件夹中的文件移到另外的一个地址,在移动大量文件的时候,该方法比较快,date:20180821"""
import shutil
import os
import argparse

parser = argparse.ArgumentParser(description='move faster,eg: python move.py --type=copy --input=./2/ --output=./3/')
parser.add_argument('--type', default='copy',help='move or copy  ')
parser.add_argument('--input', default=None,help='input dir,,eg:/home/1/2/ or ./1/2/')
parser.add_argument('--output', default=None,help='output dir,,eg:/home/1/2/ or ./1/2/')
					
args = parser.parse_args()
input_dir=args.input
output_dir=args.output
type=args.type

if not os.path.exists(output_dir):
    os.mkdir(output_dir)
data=os.listdir(input_dir)

if type=='move':
    for i in range(len(data)):
        print("正在移动:", data[i])
        shutil.move(input_dir + str(data[i]),output_dir + str(data[i]))
    print("移动结束")

if type=='copy':
    for i in range(len(data)):
        print("正在复制:", data[i])
        shutil.copy(input_dir + str(data[i]),output_dir + str(data[i]))
    print("复制结束")

该段代码运行方式如下

python move.py  --type=copy --input=./2/ --output=./3/

可以选择copy或者move

路径也可以使用绝对路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值