Io lavoro con virgola/file di dati separati da tabulazione spesso che potrebbe essere simile a questo:È possibile eseguire lo streaming di un elenco pickle Python, tupla o altro tipo di dati iterabile?
key1,1,2.02,hello,4
key2,3,4.01,goodbye,6
...
potrei leggere e pre-processo questo in Python in una lista di liste, in questo modo:
[ [ key1, 1, 2.02, 'hello', 4 ], [ key2, 3, 4.01, 'goodbye', 6 ] ]
A volte, mi piace salvare questo elenco di elenchi come un sottaceto, dal momento che conserva i diversi tipi delle mie voci. Se il file in pickled è grande, sarebbe bello leggere questo elenco di liste in streaming.
In Python, per caricare un file di testo come un flusso, io uso il follwoing di stampare ogni linea:
with open('big_text_file.txt') as f:
for line in f:
print line
Posso fare qualcosa di simile per una lista Python, vale a dire:
import pickle
with open('big_pickled_list.pkl') as p:
for entry in pickle.load_streaming(p): # note: pickle.load_streaming doesn't exist
print entry
Esiste una funzione di pickle come "load_streaming"?
Che cosa si intende per "streaming"? cosa vuoi che "entrata" sia? anche notare che il tuo codice, come pubblicato, probabilmente non sta facendo quello che intendi. volevi dire "per l'entrata in pkl' invece di" per l'entrata in p'? – shx2
Penso che con "streaming" intenda iterare un file pickle come una sequenza di sottaceti, allo stesso modo in cui è possibile iterare un file di testo come una sequenza di linee, come fa la risposta di mata. – abarnert