import argparse import glob import os import re import shutil from datetime import datetime def parse_args(): parser = argparse.ArgumentParser( description='Reorganize reservoir storage data by year and reservoir.') parser.add_argument( 'dest', type=str, help='New directory location for files.') parser.add_argument( 'files', nargs='+', type=str, help='Files to copy or move.') parser.add_argument( '-m', '--move', action='store_true', help='Move files instead of copying.') parser.add_argument( '-s', '--show', action='store_true', help='Print new directory structure when done.') return parser.parse_args() if os.path.exists(dest): if not os.path.isdir(dest): raise RuntimeError( 'Something already exists with the same name ' 'as destination directory!') else: os.makedirs(dest) os.path.exists('data') if move: func = shutil.move else: func = shutil.copy final_dest = os.path.join(dest, reservoir) os.path.join('data', 'NICASIO', '2012') files = glob.glob(os.path.join(dest, '**', '*.txt')) glob.glob('data/n*.txt') # get just the reservoir name from e.g. '#NICASIO' reservoir = re.search(r'#\s*(.*)', line).group(1) re.search(r'#\s*(.*)', '# NICASIO').group(1) reservoir = reservoir.replace(' ', '') 'San Pablo Reservoir'.replace(' ', '') 'San Pablo Reservoir'.replace(' ', '').lower() '{}_{}.txt'.format(reservoir, year) reservoir = 'SanPabloReservoir' year = 2014 '{}_{}.txt'.format(reservoir, year) date = datetime.strptime(date, '%m/%Y') date = datetime.strptime('10/9/2014', '%d/%m/%Y') print(date) print(date.year)