Difference between revisions of "Python:Template"

From wiki
Jump to navigation Jump to search
m
m
Line 1: Line 1:
 +
[[Category:Python]]
 
Template for Python programs. Creating logfiles, standard modules to load, opening files,  user configuration.
 
Template for Python programs. Creating logfiles, standard modules to load, opening files,  user configuration.
  
Line 59: Line 60:
 
def openlog (logfilename = ''):
 
def openlog (logfilename = ''):
 
     if logfilename == '':
 
     if logfilename == '':
         logfilename = re.sub('/bin/','/log/',__file__)
+
         logfilename = __file__.replace('/bin/','/log/')
 
         logfilename += '_'+datetime.now().strftime("%y%m%d_%H%M")+'.log'
 
         logfilename += '_'+datetime.now().strftime("%y%m%d_%H%M")+'.log'
 
     try:
 
     try:

Revision as of 20:09, 12 October 2018

Template for Python programs. Creating logfiles, standard modules to load, opening files, user configuration.

Code for mailing is on this wiki too.

ToDO:

  • Parsing commandline options
def usage():
    print ("Usage: "+__file__)
    print("Template for python programs")
    sys.exit(1)


# USER CONFIGURABLE ITEMS

filespec =  '*.*'
logfile2name = '<apath>_timestamp.txt'

# END USER CONFIGURABLE ITEMS, DO NOT CHANGE ANYTHING BELOW THIS LINE

import os,sys,re,glob
from datetime import datetime
timestamp = datetime.now().strftime("%y%m%d_%H%M%S")


def main():
    logfile2name = logfile2name.replace('timestamp',timestamp)
    logfile,logfilename = openlog()
    logfile2 = openlog(<apath>)[0]                                   # If you don't care about the logfilename
    writelog(logfile,"This is in the logfile with generated name")
    writelog(logfile2,"This is in the logfile with specified name")
    openfile(filespec)

    return

def openfile(filespec):
    filelist = glob.glob(filespec)
    for filename in filelist:
        if os.path.isfile(filename):
            with open (filename,"r") as file:
                for line in file:
                    <codeblock>
    return


def writelog (logfile,message):
    try:
        logfile.name
    except AttributeError:
        print("ERROR: Logfile is not open")
        usage()
    else:
        logfile.write(datetime.now().strftime("%y%m%d_%H%M%S_%f")+" "+message+"\n")
    return


def openlog (logfilename = ''):
    if logfilename == '':
        logfilename = __file__.replace('/bin/','/log/')
        logfilename += '_'+datetime.now().strftime("%y%m%d_%H%M")+'.log'
    try:
        logfile.name
    except UnboundLocalError:
        logfile = open (logfilename,"a")
    return(logfile,logfilename)

main()