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()

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website