Python: Code-Rahmen für Auswertungen mit pandas
Für das „Rahmenwerk“ rund um eine Datenauswertung nutze ich immer den selben Code, der a) die Auswertung von Kommandozeilenparametern b) Zeitstempel und c) das Logging übernimmt. Geloggt wird auf STDOUT und in eine Datei.
import pandas as pd # pandas import argparse # Kommandozeilenargumente import logging # Logging import sys # für das Logging import time # für den Zeitstempel # Zeitstempel timestr = time.strftime('%Y%m%d') # '%Y%m%d-%H%M%S' # Logger in Datei und auf die Konsole logger = logging.getLogger("Logfile.log") logger.propagate = False logger.setLevel(logging.DEBUG) fileHandler = logging.FileHandler(logger.name + '_' + timestr + ".log",mode='w') fileHandler_format = logging.Formatter('%(asctime)s_%(levelname)s_%(message)s',datefmt='%H:%M:%S') fileHandler.setFormatter(fileHandler_format) consoleHandler = logging.StreamHandler(sys.stdout) #formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') consoleHandler.setFormatter(fileHandler_format) if logger.handlers: for handler in logger.handlers: logger.removeHandler(handler) logger.addHandler(fileHandler) logger.addHandler(consoleHandler) # Zum Auswerten der Kommandozeilenparameter (siehe Aufruf aus Excel) # Definiere Parameter parser = argparse.ArgumentParser("Was bin ich") parser.add_argument('-c','--currentdate',dest='currentdate') parser.add_argument('-l','--lastdate',dest='lastdate') parser.add_argument('-o','--outputfile',dest='outputpath') # verarbeite Kommandozeilenargumente logger.info('Verarbeite die Kommandozeilenargumente') args = parser.parse_args() # no more "A value is trying to be set on a copy of a slice from a DF" warning pd.options.mode.chained_assignment = None print('args.currentdate', args.currentdate) print('args.lastdate', args.lastdate) print('args.outputpath', args.outputpath) logging.shutdown()