python 文件操作工具

linux用cp rm mv操作文件的时候会出现列表过长报错,需要用别的方法操作文件。

-bash: /usr/bin/cp: Argument list too long

 1. 将如下代码保存到op_.py:

import os
import argparse
from shutil import copyfile, move
from fnmatch import fnmatch, fnmatchcase

parser = argparse.ArgumentParser(description='file options')

parser.add_argument('op', default='', choices=['rm', 'mv', 'cp'],
                    help='remove files')

parser.add_argument('extensions', type=str,
                    help='Extension name')
parser.add_argument('paths', metavar='N', nargs='+', type=str,
                    help='Source data path / Path to remove')

args = parser.parse_args()

if (not args.op=='rm') and (not os.path.exists(args.paths[1])):
    os.mkdir(args.paths[1])

def main():
    for root, dirs, files in os.walk(args.paths[0]):
        for filename in files:
            if fnmatch(filename, args.extensions):
                src_path = os.path.join(args.paths[0], filename)
                if args.op == 'rm':
                    os.remove(src_path)
                    continue

                tgt_path = os.path.join(args.paths[1], filename)
                if args.op == 'cp':
                    copyfile(src_path, tgt_path)
                    continue

                if args.op == 'mv':
                    move(src_path, tgt_path)


if __name__ == "__main__":
    main()

 1. 复制文件

python op_.py cp *.jpg ./source/dir/  ./target/dir/

 2. 删除文件:

python op_.py rm *.jpg  ./source/dir/

3. 移动文件:

python op_.py mv *.jpg  ./source/dir/  ./target/dir/

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值