Skip to content

Commit a5eeb4c

Browse files
committed
version 1.8
1 parent 2a0642f commit a5eeb4c

File tree

1 file changed

+34
-1
lines changed

1 file changed

+34
-1
lines changed

06_fileio.ipynb

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,39 @@
179179
" print(content)"
180180
]
181181
},
182+
{
183+
"cell_type": "markdown",
184+
"metadata": {},
185+
"source": [
186+
"---\n",
187+
"## 5. Streaming e file di grandi dimensioni 💾\n",
188+
"\n",
189+
"Quando si lavora con file di grandi dimensioni, leggere tutto il contenuto in memoria può causare problemi. Si possono usare due approcci per ovviare al problema, leggere il file **riga per riga** o in **blocchi** usando un ciclo o generatori.\n",
190+
"\n",
191+
"### Read line\n",
192+
"```python\n",
193+
"with open('large_file.txt', 'r') as f:\n",
194+
" for line in f:\n",
195+
" # process line\n",
196+
" print(line.strip())\n",
197+
"```\n",
198+
"\n",
199+
"### Usage of a ganerator to read in chuncks\n",
200+
"```python\n",
201+
"def read_in_chunks(file_path, chunk_size=1024):\n",
202+
" with open(file_path, 'r') as f:\n",
203+
" while True:\n",
204+
" chunk = f.read(chunk_size)\n",
205+
" if not chunk:\n",
206+
" break\n",
207+
" yield chunk\n",
208+
"\n",
209+
"# Utilize generator\n",
210+
"for piece in read_in_chunks('large_file.txt'):\n",
211+
" print(piece)\n",
212+
"```"
213+
]
214+
},
182215
{
183216
"cell_type": "markdown",
184217
"metadata": {},
@@ -190,7 +223,7 @@
190223
"cell_type": "markdown",
191224
"metadata": {},
192225
"source": [
193-
"## 5. Esercizi\n",
226+
"## Esercizi\n",
194227
"\n",
195228
"### Esercizio 1: Scrivere una lista su un file\n",
196229
"Scrivi un programma che crea una lista di nomi e poi scrive ogni nome su una riga separata di un file `names.txt`.\n",

0 commit comments

Comments
 (0)