Muszę rozpakować plik gz, który pobrałem z witryny FTP na lokalny serwer plików systemu Windows. Mam ustawione zmienne dla lokalnej ścieżki pliku i wiem, że może być używane przez błotnisty GZIP.
Jak mogę to zrobić? Plik wewnątrz pliku GZ jest plikiem XML.
@JeyJ: taki jest cel instrukcji „with”. Wykonuje f_in.close () na istnieniu sekcji "with". Naprawdę przydatne, jeśli coś idzie nie tak (jak wyjątek). Zapewnia, że zasób jest zamknięty
Zwróć uwagę, że shutil.copyfileobj()ma trzeci parametr length: „Długość całkowita, jeśli jest podana, to rozmiar bufora. W szczególności ujemna wartość długości oznacza kopiowanie danych bez zapętlania danych źródłowych w fragmentach; domyślnie dane są odczytywane fragmentami do unikaj niekontrolowanego zużycia pamięci ”.
Nie jest to dokładna odpowiedź, ponieważ używasz danych xml i obecnie nie ma żadnej pd.read_xml()funkcji (od wersji 0.23.4), ale pandy (od wersji 0.21.0) mogą zdekompresować plik za Ciebie! Dzięki Wes!
import pandas as pd
import os
fn = '../data/file_to_load.json.gz'
print(os.path.isfile(fn))
df = pd.read_json(fn, lines=True, compression='gzip')
df.tail()
Chociaż ten kod może odpowiedzieć na pytanie, dostarczenie dodatkowego kontekstu dotyczącego tego, jak i / lub dlaczego rozwiązuje problem, poprawiłoby długoterminową wartość odpowiedzi.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.