Exemplo n.º 1
0
    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))
Exemplo n.º 3
0
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