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

def cercarFiles(directori,nomFitxer):
  for fitDir in os.listdir(directori):
     if os.path.isfile(directori+'/'+fitDir):
       if fitDir.find(nomFitxer) != -1:
         print('Fitxer: '+directori+'/'+fitDir)
     else:
       cercarFiles(directori+'/'+fitDir,"nomFitxer")

ruta=input("Directori: ")
rutaAbsoluta = os.path.abspath(ruta)
if os.path.exists(ruta):
   cercarFiles(rutaAbsoluta,"dos")
else:
print("El directori %s no existeix!" %rutaAbsoluta)