@7sigma: An welcher Stelle macht das denn nicht mehr das was Du erwartest? Erwartest Du beispielsweise das `allFiles` etwas enthält? Ich eher nicht weil Du da ein „glob“ auf den Pfad "pfad/ordner/*.txt/*.txt" machst, was falsch aussieht, oder?
Eingerückt wird vier Leerzeichen pro Ebene, nicht sieben.
`os.path` & Co würde man in neuem Code durch `pathlib.Path` ersetzen.
Namen werden in Python klein_mit_unterstrichen geschrieben. Ausnahmen sind Konstanten (KOMPLETT_GROSS) und Klassen (MixedCase). Also `all_files` statt `allFiles`.
Inhaltlich ist der Name auch falsch, denn in der Liste sind keine Dateiobjekte sondern Datei*namen*. Von einem Dateiobjekt erwartet der Leser das es so Methoden wie zum Beispiel `read()`/`write()` und `close()` besitzt.
Die erste Zuweisung an `frame` ist sinnlos weil der Wert nirgends verwendet wird.
`list_` ist kein guter Name. Eine Name sollte dem Leser verraten was der Wert dahinter im Kontext des Programms bedeutet. Man sollte Code *lesen* können. Stell Dir vor Du liest den Code jemandem vor und fragst den hinterher ob er verstanden hat was da inhaltlich passiert.
Hier würde sich auch eine „list comprehension“ anbieten.
Was soll das `_` am Ende von `file_`?
Du willst die Dataframes auch nicht unter- sondern nebeneinander haben.
Ungetestet:
Code: Alles auswählen
#!/usr/bin/env python3
from pathlib import Path
import pandas as pd
def main():
text_file_directory = Path("pfad", "ordner")
single_column_dataframes = [
pd.read_csv(filename, index_col=None, header=None, sep="\t")
for filename in text_file_directory.glob("*.txt")
]
dataframe = pd.concat(single_column_dataframes, axis=1, ignore_index=True)
print(dataframe)
if __name__ == "__main__":
main()