Seite 1 von 1

Variablen werden in einzelne Zeilen geprintet

Verfasst: Freitag 14. April 2017, 18:28
von Frostie
Hallo liebe Community!
Bin neu im Forum, nehmt's mir also nicht übel :D

Ich habe hier folgenden Code, um alle Dateien im aktuellen Verzeichnis + Unterordnern ausfindig zu machen:

Code: Alles auswählen

import os

currentdir = os.getcwd()	#Aktuelles Verzeichnis

for path, subdirs, files in os.walk(currentdir):
        for filename in [fi for fi in files if not fi.endswith(".pyc")]: #Keine pycache-Dateien
            print(filename)
            f = os.path.join(path, filename)	#Pfad zur aktuellen Datei
            print(f)
Dann bekomme ich alle filenames bzw. f's untereinander (in einzelne Zeilen) geprintet und hier ist das Problem. Ich möchte die ganzen Variablen in eine Liste bekommen. Ich hatte mal einen einfacheren Code, ging jetzt aber leider nicht.

Wie kriege ich das ganze in eine Liste?
Mit .append() klappt es ja nicht da hier immer das erste genommen wird. Ich finde es echt komisch, dass alles in eine neue Zeile geprintet wird. Wie kann ich das ändern? Ist aber anscheinend normal bei einer for-Funktion wie ich herausgefunden habe.

Danke :)

Mit freundlichen Grüßen, Daniel

Re: Variablen werden in einzelne Zeilen geprintet

Verfasst: Freitag 14. April 2017, 18:57
von Sirius3
@Frostie: was meinst Du damit, dass bei append immer das erste genommen wird?

Code: Alles auswählen

import os

currentdir = os.getcwd()   #Aktuelles Verzeichnis
all_files = []
for path, subdirs, filenames in os.walk(currentdir):
    for filename in filenames:
        if not fi.endswith(".pyc"): # Keine pycache-Dateien
            all_files.append(os.path.join(path, filename))   # Pfad zur aktuellen Datei
print(all_files)

Re: Variablen werden in einzelne Zeilen geprintet

Verfasst: Freitag 14. April 2017, 19:05
von Frostie
Oh vielen Dank! Funktioniert!

Ich meinte damit, dass .append() nur die erste Zeile aufnimmt.

Wenn jetzt
A
B
C
geprintet wird, wird nur A in die Liste aufgenommen.

Grüße

Re: Variablen werden in einzelne Zeilen geprintet

Verfasst: Freitag 14. April 2017, 19:13
von BlackJack
@Frostie: Das mit dem `append()` macht immer noch keinen Sinn. Wenn nur A aufgenommen wird, dann hast Du auch nur für A `append()` aufgerufen. Das ist aber kein Problem mit `append()`, Du hättest es halt auch für B und C aufrufen müssen.