#!/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')
网友评论