Debo deir que por ahora parese muy poco intuitivo... quizá por conocer otros lenguajes que son mas o menos similares.
Evidentemente para aprender voy a tener que arrancar de cero cero, muy poco de lo que conozco me sirve para este lenguaje. Lo que sí se ve a simple vista es que es muy práctico y directo. Maneja cadenas y archivos de forma directa... voy a seguir leyendo y practicando sobre este ejemplo.
Saludos!
Es que no estas acostumbrado a python xD, es distinto a los demas, el ejemplo mas simple:
for filename in os.listdir('.'):
ext = filename.split('.')[-1] # Divide el nombre por el caracter '.' y toma el último
if ext.lower() == 'c' or ext.lower() == 'cpp': # Si la extension en minúsculas es 'c' o 'cpp'
print(filename)
Primero notar la identacion.
Para que lo entiendas como en C
for filename
in os.listdir('.'):
Primer linea es un for, y dice que
por cada nombre de archivo (filename)
en el "array"(lista) que devuelve os.listdir('.'), es decir la direccion (carpeta) donde se encuentra el .py Haga:
ext = filename.split('.')[-1]
Tomar el nombre y divirlo apenas encuentre un punto, suponete el nombre
archivo.txt esto te queda asi: [archivo,txt] , y toma el -1 que es txt y lo guarda en ext
if ext.lower() == 'c' or ext.lower() == 'cpp':
Como puede estar en mayuscula utiliza el lower para pasarlo a minuscula y lo compara con "c" o "cpp"
print(filename)
De cumplirse la condicion del if, imprime en la consola el nombre del archivo completo.
Una cosa mas con el tema del split y como maneja python los "arrays", No recuerdo si era 0 based o comenzaba de 1 el array, pero voy a suponer que comienza de uno, por lo que quiero explicar no va a haber problema
Suponete esto:
str = "Line1-abcdef Line2-abc Line3-abcdef Line4-abcd";
Si le hago un split a esto y guardo en otra variable puedo hacer:
ext = str.split(' ') Esto me lo deja como : ['Line1-abcdef', 'Line2-abc', 'Line3-abcd', 'Line4-abcd']
ext = str.split(' ')[1] Esto me deja a ext con el valor : 'Line1-abcdef'
ext = str.split(' ')[2:] Esto me lo deja como : ['Line2-abc', 'Line3-abcd', 'Line4-abcd']
ext = str.split(' ')[2:3] Esto me lo deja como : ['Line2-abc', 'Line3-abcd']
Si en algo me equivoco que me corrija picuino, hace mucho que no toco python.