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
    点赞
  • 2
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

评论 2 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

三聚晴明

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值