En aquest tema, aprendrem com gestionar fitxers i directoris utilitzant Python. Això inclou crear, eliminar, moure i renombrar fitxers i directoris, així com obtenir informació sobre ells. Utilitzarem el mòdul os i el mòdul shutil per dur a terme aquestes operacions.

Continguts

Introducció al mòdul os

El mòdul os proporciona una manera de treballar amb el sistema operatiu. Aquest mòdul ens permet interactuar amb el sistema de fitxers i realitzar operacions com crear, eliminar i moure fitxers i directoris.

Exemple bàsic

import os

# Obtenir el directori de treball actual
current_directory = os.getcwd()
print(f"Directori actual: {current_directory}")

# Canviar el directori de treball
os.chdir('/path/to/new/directory')
print(f"Nou directori de treball: {os.getcwd()}")

Operacions bàsiques amb fitxers

Crear un fitxer

with open('nou_fitxer.txt', 'w') as file:
    file.write("Aquest és un nou fitxer.")

Eliminar un fitxer

import os

if os.path.exists('nou_fitxer.txt'):
    os.remove('nou_fitxer.txt')
    print("Fitxer eliminat.")
else:
    print("El fitxer no existeix.")

Renombrar un fitxer

import os

os.rename('antic_nom.txt', 'nou_nom.txt')
print("Fitxer renombrat.")

Moure un fitxer

import os

os.replace('fitxer_a_moure.txt', '/nou/cami/fitxer_a_moure.txt')
print("Fitxer mogut.")

Operacions bàsiques amb directoris

Crear un directori

import os

os.mkdir('nou_directori')
print("Directori creat.")

Eliminar un directori

import os

os.rmdir('nou_directori')
print("Directori eliminat.")

Llistar contingut d'un directori

import os

contingut = os.listdir('.')
print("Contingut del directori actual:")
for element in contingut:
    print(element)

Ús del mòdul shutil

El mòdul shutil proporciona una interfície d'alt nivell per a operacions amb fitxers i directoris, com copiar i moure fitxers.

Copiar un fitxer

import shutil

shutil.copy('fitxer_original.txt', 'copia_fitxer.txt')
print("Fitxer copiat.")

Moure un fitxer

import shutil

shutil.move('fitxer_a_moure.txt', '/nou/cami/fitxer_a_moure.txt')
print("Fitxer mogut.")

Eliminar un directori amb contingut

import shutil

shutil.rmtree('directori_amb_contingut')
print("Directori amb contingut eliminat.")

Exercicis pràctics

Exercici 1: Crear i eliminar un fitxer

  1. Escriu un programa que creï un fitxer anomenat exercici1.txt i escrigui "Hola, món!" en ell.
  2. Després, elimina el fitxer.
# Solució
with open('exercici1.txt', 'w') as file:
    file.write("Hola, món!")

if os.path.exists('exercici1.txt'):
    os.remove('exercici1.txt')
    print("Fitxer eliminat.")
else:
    print("El fitxer no existeix.")

Exercici 2: Crear i llistar un directori

  1. Escriu un programa que creï un directori anomenat exercici2.
  2. Llista el contingut del directori actual per verificar que el nou directori ha estat creat.
# Solució
import os

os.mkdir('exercici2')
contingut = os.listdir('.')
print("Contingut del directori actual:")
for element in contingut:
    print(element)

Exercici 3: Copiar i renombrar un fitxer

  1. Escriu un programa que copiï un fitxer existent anomenat original.txt a un nou fitxer anomenat copia.txt.
  2. Renombra copia.txt a renombrat.txt.
# Solució
import shutil

shutil.copy('original.txt', 'copia.txt')
os.rename('copia.txt', 'renombrat.txt')
print("Fitxer copiat i renombrat.")

Conclusió

En aquesta secció, hem après com gestionar fitxers i directoris utilitzant Python. Hem vist com crear, eliminar, moure i renombrar fitxers i directoris, així com obtenir informació sobre ells. També hem explorat el mòdul shutil per a operacions d'alt nivell. Aquestes habilitats són essencials per a qualsevol programador que treballi amb sistemes de fitxers.

Curs de Programació en Python

Mòdul 1: Introducció a Python

Mòdul 2: Estructures de Control

Mòdul 3: Funcions i Mòduls

Mòdul 4: Estructures de Dades

Mòdul 5: Programació Orientada a Objectes

Mòdul 6: Gestió de Fitxers

Mòdul 7: Gestió d'Errors i Excepcions

Mòdul 8: Temes Avançats

Mòdul 9: Proves i Depuració

Mòdul 10: Desenvolupament Web amb Python

Mòdul 11: Ciència de Dades amb Python

Mòdul 12: Projecte Final

© Copyright 2024. Tots els drets reservats