Jeszcze jeden skrypcik, który napisałem, bo był mi aktualnie potrzebny. Jako parametr główny przyjmuje nazwe istniejącego pliku z listą poszukiwanych plików (ewentualnie ścieżek). Wyszukuje wskazane pliki i kopiuje je do wskazanego katalogu docelowego.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #!/usr/bin/python # -*- coding: utf-8 -*- import os, argparse, sys, shutil def visit(arg, dirName, fileNames): for f in fileNames: fullPath = os.path.normpath(os.path.join(dirName,f)) if not os.path.isdir(fullPath): if f in tab: print(fullPath) if args.p == False: #copy if not os.path.exists(args.dest): os.makedirs(args.dest) dest = os.path.join(args.dest,f) if os.path.exists(dest): if args.o: if cmp(fullPath, dest) != 0: shutil.copy2(fullPath, args.dest) else: if cmp(fullPath, dest) != 0: shutil.copy2(fullPath, args.dest) #log if args.p == False: fw = open(args.logfile,'a') fw.write(fullPath+'\n') fw.close() parser = argparse.ArgumentParser(os.path.basename(sys.argv[0]),description='Multi-search files in path'); parser.add_argument('path',nargs='?',default='.',help='searched path, default .'); parser.add_argument('listfile',help='list of files to search (as file)'); parser.add_argument('dest',nargs='?',default='.',help='destination directory (where files will be copied), default .'); parser.add_argument('logfile',nargs='?',default='multiFind.log',help='log file, default multiFind.log'); parser.add_argument('-p',help='show files only, DON\'T COPY',action='store_true'); parser.add_argument('-o',help='overwrite first searched with next searches (in destination)',action='store_true'); args = parser.parse_args(sys.argv[1:]); fo = open(args.listfile, 'r'); tab = fo.readlines() fo.close(); i=0 for t in tab: tab[i] = tab[i].replace('\n',''); s = tab[i].split('\\') # win32 l = len(s); s2 = s[l-1]; s3 = s2.split('/') # unix l2 = len(s3); s4 = s3[l2-1]; # print(s4) tab[i] = s4 i += 1 os.path.walk(args.path, visit, 1) |