Skip to content
Snippets Groups Projects
summarize_summaActors.py 1.17 KiB
Newer Older
  • Learn to ignore specific revisions
  • import os
    import re
    import sys
    
    summaryFile = '_log_summaryActors.txt'
    ext = ".out"
    
    if len(sys.argv) == 1:
    	sys.exit('Error: no input folder specified')
    
    else:
    
    	folder = sys.argv[1]
    
    def determine_output(folder,file):
    	outFile = open(folder + file, 'r')
    	print(outFile)
    	try:
    		lines = outFile.readlines()
    	except UnicodeDecodeError:
    		outFile.close()
    		outFile = open(folder + file, encoding = "ISO-8859-1")
    		lines = outFile.readlines()
    	counter = 1
    	for line in reversed(lines):
    		if counter > 30:
    			return -1
    		else:
    			if "Hours" in line:
    				hours = re.findall("\d+\.\d+", line)
    				return hours
    			counter += 1
    		
    
    try:
    	os.remove(folder + "/" + summaryFile)
    except OSError:
    	pass
    
    files = []
    for file in os.listdir(folder):
    	if file.endswith(ext):
    		files.append(file)
    
    files.sort()
    
    total_success = []
    
    computation_time = []
    
    with open(folder + '/' + summaryFile, "w") as sf:
    	sf.write('Summarizing log files in ' + folder + '\n \n')
    	sf.write('Log files' + '\n')
    
    	for file in files:
    		value = determine_output(folder, file)
    		if value == -1:
    			sf.write("{} - Still Running or Failed\n".format(file))
    		else:
    			sf.write("{} - Success after {} hours \n".format(file, value[0]))