CSV: modificare il delimitatore tramite Python

| |

Se c’è una cosa che odio profondamente, è l’avere a che fare con file CSV che – per comportamento predefinito – vengono generati da qualsivoglia applicazione con il classico delimitatore all’americana: la virgola.
Sì, lo so, c’è modo di modificare il sistema per utilizzare il punto e virgola, e decine di altri metodi “ammiocuggino” ampiamente testati e venduti come panacea di tutti i mali. Io ho preferito qualche riga di codice che ho chiesto (e poi validato) a Claude.

Modificare il delimitatore CSV: da , a ;

Da virgola a punto e virgola, uno script in Python. Accetta da riga di comando due parametri: posizione e nome del file di input, posizione (facoltativa, usa quella da cui stai lanciando lo script se non la specificherai) e nome del file del file che andrà a creare con il delimitatore desiderato, che poi è impostato a livello di script e sarà il punto e virgola. Questo ti permetterà di evitare di incorrere nel più classico degli errori: aprire il CSV originale in Excel, separare i dati in colonna basandoti sulla virgola e ottenere il messaggio di Warning che ti dice che ci sono già colonne popolate e che stai per andarle a sovrascrivere con altri dati.

Il codice è pubblicamente disponibile su Gist:

import csv
import sys
if len(sys.argv) != 3:
print("Utilizzo: python script.py input_file.csv output_file.csv")
sys.exit(1)
input_file = sys.argv[1]
output_file = sys.argv[2]
# Leggi il file CSV con separatori virgola
with open(input_file, 'r') as file:
reader = csv.reader(file)
data = list(reader)
# Scrivi il nuovo file CSV con separatori punto e virgola
with open(output_file, 'w', newline='') as file:
writer = csv.writer(file, delimiter=';')
writer.writerows(data)
print(f"Conversione completata. File di output: {output_file}")

Tu potrai scaricarlo facendo clic qui, eseguirlo sulla tua macchina e goderti il risultato.

CSV: modificare il delimitatore da virgola a punto e virgola grazie a Python

Lancialo da terminale (ammesso tu abbia Python installato sul tuo PC) specificando quanto ti spiegavo poco sopra, un esempio pratico:

python3 C:\temp\file_csv_originale.csv C:\temp\file_csv_modificato.csv

Inutile forse dirlo: se non ti piace che lo script inserisca come delimitatore il punto e virgola, ti basterà modificare la riga 18 (questa: gist.github.com/gioxx/01b0bb9b5d27c8c227486182193df00b#file-csv_delimiter-py-L18) scegliendo un diverso delimitatore al posto di quello da me dichiarato (delimiter=';').

L’area commenti è a tua disposizione per ogni dubbio in merito a questo articolo e allora script :-)

#KeepItSimple

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

Condividi l'articolo con i tuoi contatti:
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Commenti
Oldest
Newest Most Voted
Inline Feedbacks
View all comments