Seite 1 von 1
Unzippen in Unterordner
Verfasst: Dienstag 16. Februar 2021, 08:44
von stef94
Ich habe einen Ordner mit über 700 Unterordnern. In jedem Unterordner befinden sich *.json.gz Dateien, die ich unzippen und als .txt abspeichern möchte. Mit dem folgenden Code kann ich die .gz Dateien unzippen:
import os
import gzip
import shutil
search_path = os.getcwd()
file_type = ".gz"
for fname in os.listdir(path=search_path):
if fname.endswith(file_type):
with gzip.open(fname,'rb') as f_in:
with open(fname+'.txt','wb') as f_out:
shutil.copyfileobj(f_in,f_out)
Wie kann ich nun den Code anpassen, dass er die .gz Dateien in allen Unterordnern unzipped?
Vielen Dank für die Hilfe!
Re: Unzippen in Unterordner
Verfasst: Dienstag 16. Februar 2021, 09:31
von sparrow
Für alles, was mit Pfaden zu tun hat, nimmt man
pathlib. Pfade haben eine sehr hilfreiche glob-Methode.
Re: Unzippen in Unterordner
Verfasst: Dienstag 16. Februar 2021, 11:13
von __blackjack__
@stef94: Warum änderst Du die Endung in *.txt statt *.json?
Re: Unzippen in Unterordner
Verfasst: Dienstag 16. Februar 2021, 12:05
von stef94
@_blackjack_: Das war nur zum testen. Ich werde das File schon im JSON behalten um dann ins pandas zu importieren.
Aber kannst du mir sagen, wie ich auf alle Unterordner zugreifen kann?
Re: Unzippen in Unterordner
Verfasst: Dienstag 16. Februar 2021, 13:17
von __blackjack__
@stef94: Mit der `pathlib.Path.glob()`-Methode, wie sparrow schon geschrieben hat.
Re: Unzippen in Unterordner
Verfasst: Dienstag 16. Februar 2021, 13:31
von Sirius3
Wenn du es mit Pandas weiter verarbeiten willst, warum entpackst Du die Dateien dann erst?
Re: Unzippen in Unterordner
Verfasst: Dienstag 16. Februar 2021, 14:59
von stef94
@Sirius3: Ich dachte, ich muss die .gz Dateien zuerst entpacken, um dann mit pandas arbeiten zu können?
Schlussendlich möchte ich alle JSON Dateien in einem pandas Dataframe haben um dann Machine Learning anwenden zu können.
Kann ich direkt die -gz Files aus den Unterordnern in pandas ziehen?
Re: Unzippen in Unterordner
Verfasst: Dienstag 16. Februar 2021, 16:29
von ThomasL
stef94 hat geschrieben: Dienstag 16. Februar 2021, 14:59
Kann ich direkt die -gz Files aus den Unterordnern in pandas ziehen?
Nicht fragen, sondern selber hier schauen
https://pandas.pydata.org/pandas-docs/s ... d_csv.html
Beispiel: