In questo articolo vedremo come creare un piccolo ma potente script Python che accetta parametri direttamente dal terminale per convertire il contenuto di un file in modalità upper (maiuscolo) o lower (minuscolo).
import argparse
import sys
def elabora_file(input_file, output_file, modalita):
try:
# Apertura del file originale in lettura
with open(input_file, 'r', encoding='utf-8') as f:
contenuto = f.read()
# Trasformazione in base al parametro
if modalita == 'upper':
risultato = contenuto.upper()
else:
risultato = contenuto.lower()
# Scrittura nel file di destinazione
with open(output_file, 'w', encoding='utf-8') as f:
f.write(risultato)
print(f"Operazione completata: '{output_file}' creato con successo in modalità {modalita}.")
except FileNotFoundError:
print(f"Errore: Il file '{input_file}' non è stato trovato.")
except Exception as e:
print(f"Si è verificato un errore: {e}")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Converte il testo di un file in UPPER o lower case.")
# Parametri obbligatori
parser.add_argument("fileoriginale", help="Percorso del file da leggere")
parser.add_argument("filedestinazione", help="Percorso del file da creare")
# Scelta tra upper e lower (con conversione automatica in minuscolo per il confronto)
parser.add_argument("scelta", type=str.lower, choices=['upper', 'lower'],
help="Scegli tra 'upper' o 'lower'")
args = parser.parse_args()
elabora_file(args.fileoriginale, args.filedestinazione, args.scelta)Una volta salvato lo script con il nome “convertitxt.py” è possibile testarlo da linea di comando. La sintassi è molto semplice:
python convertitxt.py <FileOriginale> <FileDestinazione> <Scelta>Se si vuole che il contenuto sia interamente in maiuscolo, digitare
python convertitxt.py fileoriginale.txt upper.txt upperSe invece si vuole che il contenuto sia interamente in minuscolo, digitare
python convertitxt.py fileoriginale.txt lower.txt lowerNei due esempi FileOriginale e FileDestinazione si trovano nella stessa directory in cui abbiamo salvato ed eseguito lo script, ma possiamo specificare il path completo delle directory, ad esempio
python convertitxt.py /input/fileoriginale.txt /output/lower.txt lower
