def writer(self): try: with os.scandir(self.src) as entries: for entry in entries: path_name = '%s\\%s'%(self.src, entry.name) # print(path_name) f = FileReader(path_name) f.readFile() hostname = f.requiredHostname() interface_description = f.requiredInterfaceDescription() required_file = f.isRequired(interface_description) # if '.*#show interface description' exist (interface_description is not an empty list), it is a required file if required_file: model = f.requiredModel() serial = f.requiredSerial() version = f.requiredVersion() interface_status = f.requiredInterfaceStatus() description = pd.DataFrame(interface_description) # create dataframe description_frame = DataFrameBuilder(description) # dataframe object description_frame.newHeader() # set first row to header/column name status = pd.DataFrame(interface_status) # create dataframe status_frame = DataFrameBuilder(status) # dataframe object status_frame.newHeader() # set first row to header/column name merge_frame = description_frame.mergeFrame(status_frame) # merge description_dataframe and status_frame merge_frame.insertColumn(hostname, model, serial, version) # insert column and value merge_frame.deleteColumn() # delete column and value excel = ExcelBuilder(merge_frame.df, hostname, self.dst) # create object excel.writeExcel() # dataframe to excel file if hostname == '' or model == '' or serial == '' or version == '': self.log.append('%s Incomplete'%(hostname)) # if incomplete fill then append to log.txt except IOError: print('cannot open ', self.src ) try: with open("./log/log.txt", "w") as output: output.write('\n'.join(self.log)) except IOError: print('log.txt Failed') else: print('log.txt Completed')
def main(opts): "Main function" if not [os.path.isdir(x) for x in vars(opts)]: raise IOError("No such directory") # add slash at the end of directory slashIt = lambda x: x if x.endswith("/") else x + "/" path = slashIt(opts.path) pathConverted = slashIt(opts.pathConverted) pathManual = slashIt(opts.pathManual) manualReplacments = [] fileNames = [] for name in FileReader.getFileNames(path): # extracts file name from path fileName = FileReader.getFileName(name) # get file lines fileLines = FileReader.readFile(name) templateConverter = TemplateConverter(fileLines, name) # get converted lines convertedLines = templateConverter.getFileLines() # add lines that are inconvertible to the list manualReplacments += templateConverter.irreversibleDataList fileNames += [x.fileName for x in templateConverter.irreversibleDataList] fileName = fileName + ".tmpl" # save jinja2 template FileWriter.writeToFile(pathConverted + fileName, convertedLines) # save info about inconvertible template print(str(len(list(set( fileNames)))) + " file(s) need manual conversion. More information can be found in:\n" + pathManual + "manualConversions.txt") FileWriter.writeToFile(pathManual + "manualConversions.txt", FileWriter.convertToString(manualReplacments))
from FileReader import FileReader from PassengerStatistics import PassengerStatistics fr = FileReader() ps = PassengerStatistics() path = 'titanic.csv' ps.setPassengers(fr.readFile(path)) sex_cnt = ps.countMaleAndFemale() survived = ps.countSurvived() fcp = ps.countFirstClassPassengers() ages = ps.countAgeMedianAndMean() corr = ps.CountCorellation() popular_fem_name = ps.findMostPopularFemaleName() print "Males: ", sex_cnt[0] print "Females: ", sex_cnt[1] print "Survived: ", survived, "%" print "1st class passengers: ", fcp, "%" print "Age median: ", ages[0] print "Age middle: ", ages[1] print "Pierce corellation: ", corr print popular_fem_name