makescp

作者: 04282aba96e3 | 来源:发表于2018-02-08 11:25 被阅读13次
#!/usr/bin/env python

import argparse
import sys
import os

def dir_to_scp(root_dir, filters, recursive, scp_file):
    for file in os.listdir(root_dir):
        path = os.path.join(root_dir, file)
        if (os.path.isdir(path)) and recursive:
            dir_to_scp(path, filters, recursive, scp_file)
        elif os.path.isfile(path):
            basename, ext = os.path.splitext(path)
            if ext in filters or '.*' in filters:
                basename = os.path.basename(basename)
                scp_file.write("{} {}\n".format(basename, path))
            
        
if __name__ == '__main__':
    arg_parser = argparse.ArgumentParser(description='make a scp file from a directory')

    arg_parser.add_argument('scp', type=argparse.FileType('w'), help='scp file path')
    arg_parser.add_argument('-d','--dirs', nargs='*', default='*', help='resource file directories')
    arg_parser.add_argument('-f', '--filters', nargs='*', default='*', help='filters used to decide which kind of files should be processed')
    arg_parser.add_argument('-r', '--recursive', action='store_true', help='process the sub directory recursively')

    args = arg_parser.parse_args(sys.argv[1:])

    scp_file = args.scp
    recursive = args.recursive
    filters = []
    for i in range(len(args.filters)):
        filters.append('.' + args.filters[i])

    for i in range(len(args.dirs)):
        dir_to_scp(args.dirs[i], filters, recursive, scp_file)

#$ python ./mkscp.py -d e:/soft e:/fix_run/ -f zip cpp -r e:/WorkSpace/scp.scp')

相关文章

网友评论

      本文标题:makescp

      本文链接:https://www.haomeiwen.com/subject/rcxttftx.html