Python has increasingly become my go-to language for solving the annoying little problems that occur on a day to day basis. A good book for beginners is “Automate the Boring Stuff with Python: Practical Programming for Total Beginners” by Al Sweigart.
I have a process that runs multi streamed on a server. The input parameters and the log files containing the output are read from and written to different directories which are based on the stream name. Each log file is parsed at the end of the process to ensure that all the input parameters have been processed. I noticed that two streams were encountering issues as the stream name did not match the directory name in the input parameters. Rather than manually find the mismatch, I found the mismatch in a couple of minutes with the below python code:
#!/usr/bin/python import pdb import os import sys import subprocess import commands import time import socket import locale locale.setlocale(locale.LC_ALL, 'en_US') # ##----------------------------------------------------------------------------- ## Main Logic ##----------------------------------------------------------------------------- # all_parms=open('/opt/oracle/all_parms.txt','r') for line in all_parms: # ## Filter out some non-data lines # if '/dbbackup' in line: stream_name,fld_01,fld_02,fld_03,fld_04,temp,fld_05,fld_06=line.split("|") cmd_01,cmd_02,cmd_03,location=temp.split("/") if stream_name != location: print "Found a mismatch",stream_name,location print line print " "
The input file looks like:
Stream_name|field01|field02|field03|field04|/directory/name/stream_name|field05|field06