pracuję z przecinkami/pliki danych rozdzielone tabulatorami często, że może wyglądać tak:Czy mogę przesyłać strumieniowo listę pickletów Pythona, krotek lub inny typ danych iteracyjnych?
key1,1,2.02,hello,4
key2,3,4.01,goodbye,6
...
mogę czytać i pre-proces ten w Pythonie na listę list tak:
[ [ key1, 1, 2.02, 'hello', 4 ], [ key2, 3, 4.01, 'goodbye', 6 ] ]
Czasami lubię zapisywać tę listę list jako pikle, ponieważ zachowuje ona różne typy moich wpisów. Jeśli jednak plik jest duży, dobrze byłoby przeczytać tę listę z powrotem w strumieniu strumieniowym.
W Pythonie, aby załadować plik tekstowy w postaci strumienia, używam follwoing wydrukować każdym wierszu:
with open('big_text_file.txt') as f:
for line in f:
print line
mogę zrobić coś podobnego do listy Pythona, a mianowicie:
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
Czy istnieje funkcja piklowania, np. "Load_streaming"?
Co masz na myśli przez "streamingu"? co chcesz "wejść"? zauważ także, że twój kod, jak napisałeś, prawdopodobnie nie robi tego, co masz zamiar. miałeś na myśli 'dla wejścia w pkl' zamiast' dla wejścia w p'? – shx2
Myślę, że przez "streaming" oznacza iterowanie pliku pikle jako sekwencji pikli, w ten sam sposób, jak można przetworzyć plik tekstowy jako sekwencję linii, tak jak odpowiada odpowiedź mata. – abarnert