ASIX-M3-UF3-A1.1-Gestió de fitxers i directoris

De wikiserver
Dreceres ràpides: navegació, cerca

1. Feu un programa que actuï de manera diferent segons si existeix o no una carpeta anomenada “Temp” en un directori concret. Si no existeix, l'ha d'intentar crear. Si existeix, l'ha d’esborrar. Cada cop que es realitza una acció, cal dir si s'ha pogut dur a terme i la ruta absoluta de la carpeta processada.

import os

ruta=input("Ruta: ")
rutaAbsoluta = os.path.abspath(ruta)
print(rutaAbsoluta)
if os.path.exists(ruta):
   os.rmdir(ruta)
print("Directori %s eliminat!" %rutaAbsoluta)
else:
   os.mkdir(ruta)
   print("Directori %s creat!" %rutaAbsoluta)


2. Genereu un programa que demani a l'usuari dues cadenes de text de tres lletres, de manera que les pugui escriure pel teclat en una mateixa línia, i un directori. El programa ha de cercar tots els fitxers en el directori que tinguin com a extensió la primera cadena de text i canviar-la a la segona. Per exemple, si l'usuari escriu “txt doc”, tots els fitxers amb extensió ”.txt” han de passar a tenir l'extensió ”.doc”.


import os
extensions=input("Extensions fitxers: ")
extOrigen=extensions[0:3]
extDesti=extensions[4:7]
ruta=input("Directori: ")
rutaAbsoluta = os.path.abspath(ruta)
if os.path.exists(ruta):
  for fitxer in os.listdir(rutaAbsoluta):
    if fitxer.endswith('.'+extOrigen):
    os.rename(rutaAbsoluta+'/'+fitxer,rutaAbsoluta+'/'+fitxer[:-len(extOrigen)]+extDesti)
    print("Cambiada extensió fitxer:", fitxer)
else:
    print("El directori %s no existeix!" %rutaAbsoluta)

3. Realitzeu un programa que, en executar-se, llegeixi des del teclat la ruta a una carpeta del vostre ordinador i una mida en Kb. Llavors, ha de mostrat per pantalla tots els fitxers (no les carpetes) amb una mida superior a la donada per l’usuari. (Recordeu que 1 Kb = 1024 bytes.) Si la carpeta no existeix, ha de mostrar un missatge d'error.

>>> os.stat('uno.txt').st_size
2899


import os
BYTES = 1024
ruta=input("Directori: ")
rutaAbsoluta = os.path.abspath(ruta)
midaFitxer=int(input('Mida fitxer (kb): '))
if os.path.exists(ruta):
   for fitxer in os.listdir(rutaAbsoluta):
     if os.stat(rutaAbsoluta+'/'+fitxer).st_size > midaFitxer * BYTES:
        print(fitxer)
else:
     print("El directori %s no existeix!" %rutaAbsoluta)

4. Feu un programa que pregunti per pantalla el nom (o part del nom) d'un fitxer i la ruta a una carpeta. Aquestes dades les introduirà l'usuari pel teclat. Llavors el programa ha de cercar i mostrar per pantalla la ruta absoluta de tots els fitxers amb aquest nom a partir de la carpeta assenyalada (tant directament dintre seu com dins d'altres carpetes successives).


import os

print("Ejercicio: Búsqueda de archivos.\n")

# Ruta de la carpeta
exist_carpeta = False
while not exist_carpeta:
    path = input("Especificar la ruta del directorio: ")
    # Ruta absuluta
    folder_path = os.path.abspath(path)
    # Salir del bucle o imprimir un error
    if os.path.exists(folder_path):
        exist_carpeta = True
    else:
        print("Especifique la ruta a una carpeta existente.")

# Que buscamos?
text_buscar = input("Nombre del fichero o parte de él (distingue mayúsculas de minúsculas): ")

print(f"Lista de ficheros en los que se encuentra {text_buscar}:")
# Coger todos los archivos y carpetas dentro de la carpeta folder_path y sus subcarpetas.
# os.walk devuelve tres valores para cada elemento dentro de la carpeta:
# root - la ruta a la carpeta actual,
# carpetas - una lista de nombres de subcarpetas
# ficheros - una lista de nombres de archivos en la carpeta actual
for root, carpetas, ficheros in os.walk(folder_path):
    # Ahora comprobar cada archivo con la máscara text_buscar
    for fichero in ficheros:
        if text_buscar in  fichero:
            # Imprimir la ruta completa del archivo encontrado
            print(os.path.join(root,  fichero))