Skip to content

Commit

Permalink
formats2-csv: csv_da_scrivere/leggere -> f_scrittura/lettura #54
Browse files Browse the repository at this point in the history
  • Loading branch information
DavidLeoni committed Aug 26, 2023
1 parent cc8d2ea commit 4582e8e
Showing 1 changed file with 27 additions and 22 deletions.
49 changes: 27 additions & 22 deletions formats/formats2-csv-sol.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -422,7 +422,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"<_csv.reader object at 0x7f2f0453eed0>\n"
"<_csv.reader object at 0x7fc4a4542dd0>\n"
]
}
],
Expand Down Expand Up @@ -765,9 +765,9 @@
"\n",
"# Per scrivere, RICORDATI di specificare l'opzione 'w'\n",
"# ATTENZIONE: 'w' rimpiazza *completamente* eventuali file esistenti!\n",
"with open('file-scritto.csv', 'w', encoding='utf-8', newline='') as csv_da_scrivere: \n",
"with open('file-scritto.csv', 'w', encoding='utf-8', newline='') as f_scrittura: \n",
" \n",
" scrittore = csv.writer(csv_da_scrivere, delimiter=',') \n",
" scrittore = csv.writer(f_scrittura, delimiter=',') \n",
" \n",
" scrittore.writerow(['Questo', 'è', 'uno header'])\n",
" scrittore.writerow(['Qualche', 'dato', 'di esempio'])\n",
Expand All @@ -785,18 +785,18 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Per scrivere un nuovo CSV prendendo dati da un CSV esistente, potresti annidare un `with` per la scrittura dentro uno per la lettura:\n",
"Per scrivere un nuovo CSV prendendo dati da un CSV esistente, potresti annidare un `with` per la scrittura dentro uno per la lettura.\n",
"\n",
"<div class=\"alert alert-warning\">\n",
"\n",
"**ATTENZIONE A SCAMBIARE I NOMI DEI FILE!**\n",
"\n",
"Quando leggiamo e scriviamo è facile commettere un errore e sovrascrivere accidentalmente i nostri preziosi dati. \n",
"Quando leggiamo e scriviamo, è facile commettere un errore e sovrascrivere accidentalmente i nostri preziosi dati. \n",
"</div>\n",
"\n",
"**Per evitare problemi:**\n",
"\n",
"* usa nomi espliciti sia per i file di output (es: [esempio-1-arricchito.csv](esempio-1-arricchito.csv)) che per gli handle (es: `csv_da_scrivere`)\n",
"* usa nomi espliciti sia per i file di output (es: [esempio-1-arricchito.csv](esempio-1-arricchito.csv)) che per gli handle (es: `f_scrittura`)\n",
"* fai una copia di backup dei dati da leggere\n",
"* controlla sempre prima di eseguire il codice !"
]
Expand All @@ -810,16 +810,16 @@
"import csv\n",
" \n",
"\n",
"# ATTENZIONE: l'handle *esterno* l'abbiamo chiamato csv_da_leggere\n",
"with open('esempio-1.csv', encoding='utf-8', newline='') as csv_da_leggere: \n",
" lettore = csv.reader(csv_da_leggere, delimiter=',') \n",
"# ATTENZIONE: l'handle *esterno* l'abbiamo chiamato f_lettura\n",
"with open('esempio-1.csv', encoding='utf-8', newline='') as f_lettura: \n",
" lettore = csv.reader(f_lettura, delimiter=',') \n",
"\n",
" # Per scrivere, RICORDATI di specificare l'opzione 'w'\n",
" # Nota come questo 'with' sia dentro quello esterno \n",
" # ATTENZIONE: 'w' rimpiazza *completamente* eventuali file esistenti!\n",
" # ATTENZIONE: l'handle *interno* l'abbiamo chiamato csv_da_scrivere\n",
" with open('esempio-1-arricchito.csv', 'w', encoding='utf-8', newline='') as csv_da_scrivere: \n",
" scrittore = csv.writer(csv_da_scrivere, delimiter=',')\n",
" # ATTENZIONE: l'handle *interno* l'abbiamo chiamato f_scrittura\n",
" with open('esempio-1-arricchito.csv', 'w', encoding='utf-8', newline='') as f_scrittura: \n",
" scrittore = csv.writer(f_scrittura, delimiter=',')\n",
" \n",
" for riga in lettore:\n",
" riga.append(\"qualcos'altro\")\n",
Expand Down Expand Up @@ -854,8 +854,8 @@
}
],
"source": [
"with open('esempio-1-arricchito.csv', encoding='utf-8', newline='') as csv_da_leggere: \n",
" lettore = csv.reader(csv_da_leggere, delimiter=',') \n",
"with open('esempio-1-arricchito.csv', encoding='utf-8', newline='') as f_lettura: \n",
" lettore = csv.reader(f_lettura, delimiter=',') \n",
"\n",
" for riga in lettore:\n",
" print(riga)"
Expand Down Expand Up @@ -1066,7 +1066,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"{'Mezzocorona', 'Vigo di Fassa', 'Trento', 'Moena', 'Tonadico', 'Canazei', 'Peio'}\n"
"{'Moena', 'Trento', 'Mezzocorona', 'Canazei', 'Tonadico', 'Peio', 'Vigo di Fassa'}\n"
]
}
],
Expand Down Expand Up @@ -1329,17 +1329,17 @@
"\n",
"import csv\n",
"\n",
"# ATTENZIONE: l'handle *esterno* l'abbiamo chiamato csv_da_leggere \n",
"with open('impianti-bifuni.csv', encoding='utf-8', newline='') as csv_da_leggere:\n",
" lettore = csv.reader(csv_da_leggere, delimiter=',')\n",
"# ATTENZIONE: l'handle *esterno* l'abbiamo chiamato f_lettura \n",
"with open('impianti-bifuni.csv', encoding='utf-8', newline='') as f_lettura:\n",
" lettore = csv.reader(f_lettura, delimiter=',')\n",
" \n",
" # Nota come questo 'with' sia dentro quello esterno \n",
" # Per scrivere, RICORDATI di specificare l'opzione 'w'\n",
" # ATTENZIONE: 'w' rimpiazza *completamente* eventuali file esistenti!\n",
" # ATTENZIONE: l'handle *interno* l'abbiamo chiamato csv_da_scrivere\n",
" with open('impianti-bifuni-sistemato.csv', 'w', encoding='utf-8', newline='') as csv_da_scrivere:\n",
" # ATTENZIONE: l'handle *interno* l'abbiamo chiamato f_scrittura\n",
" with open('impianti-bifuni-sistemato.csv', 'w', encoding='utf-8', newline='') as f_scrittura:\n",
"\n",
" scrittore = csv.writer(csv_da_scrivere, delimiter=',') \n",
" scrittore = csv.writer(f_scrittura, delimiter=',') \n",
" \n",
" next(lettore, None) # saltiamo la riga con l'intestazione\n",
" for riga in lettore:\n",
Expand Down Expand Up @@ -1612,7 +1612,12 @@
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_position": {
"height": "calc(100% - 180px)",
"left": "10px",
"top": "150px",
"width": "320px"
},
"toc_section_display": true,
"toc_window_display": true
}
Expand Down

0 comments on commit 4582e8e

Please sign in to comment.