#!/usr/bin/python3 # -*- coding: utf-8 -*- """ ex05.py """ import os NOM_FITXER = "llista.dir" N_MIDA_NOM = 999 N_GROS = 9999 def vLecturaLlistaDir(fR): for line in fR: print ("%s"%line, end='') def vMostraExtensions(fR): for line in fR: nCmpt = 0 for cCar in line: if cCar == '.' or cCar == '\n' or cCar == '\0': print("%s"%line[nCmpt:],end='') break nCmpt += 1 def nComptaArxiusPuntC(fR): nComptaArxius = 0 for line in fR: nCmpt = 0 for cCar in line: if cCar == '.' or cCar == '\n' or cCar == '\0': szExt = "%s"%line[nCmpt:-1] # El darrer -1 treu el salt de línia ('\n') #print("%s"%szExt) break nCmpt += 1 if szExt == ".c": nComptaArxius += 1 return nComptaArxius def nComptaArxiusExtensio(fR,szE): nComptaArxius = 0 for line in fR: nCmpt = 0 for cCar in line: if cCar == '.' or cCar == '\n' or cCar == '\0': szExt = "%s"%line[nCmpt:-1] # El darrer -1 treu el salt de línia ('\n') #print("%s"%szExt) break nCmpt += 1 if szE == szExt: nComptaArxius += 1 return nComptaArxius def rewind(fR): fR.seek(0) def main(): szTerminal = "ls > %s" % NOM_FITXER # "ls > %s" a sistemes seriosos i "dir /b > %s" a Finestrots os.system(szTerminal) f = open(NOM_FITXER, "r") #vLecturaLlistaDir(f) #vMostraExtensions(f) #print("Arxius amb extensió .c : %d"%nComptaArxiusPuntC(f)) print("Arxius amb extensió .c : %d"%nComptaArxiusExtensio(f,".c")) rewind(f) # Funció personalitzada que fa servir f.seek(0) print("Arxius amb extensió .py : %d"%nComptaArxiusExtensio(f,".py")) rewind(f) print("Arxius amb extensió .txt : %d"%nComptaArxiusExtensio(f,".txt")) rewind(f) print("Arxius amb extensió .pdf : %d"%nComptaArxiusExtensio(f,".pdf")) f.close() main()