String splitten auf Zeilenumbruch-Symbol klappt nicht

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Jochen1980
User
Beiträge: 40
Registriert: Montag 15. August 2011, 18:44

Servus,

komisch, wenn ich für den Split eine andere Zeichenkette nehme klappt es wie gewünscht, ich erhalte meine Liste der Dateien zeilenweise ausgegeben. Nehme ich "\n" oder chr(10) oder '\n' wird aber nichts gesplittet - was ist da los?

Code: Alles auswählen

    def do_helper_cfaarchive_all_files_of_dir_set(self, path):
        print("do_helper_cfaarchive_all_files_of_dir_set(self, path)")
        path = "/home/joba/Desktop/clustereingang/cfa500/tempstorage/"
        output = subprocess.check_output(["ls"], cwd=path)
        print( "Popen-Wrapper check_output():", output )
        # als Liste darstellen
        file_list_string = str(output)
        list_of_files = file_list_string.split(chr(10))
        for item in list_of_files:
            print("Item:", item)
        input("Weiter mit beliebiger Taste.")
Der String sieht etwa so aus:
... bz2\ncfa500-2Z7F_I-103-archive.tar\ncfa500-2ZC3_C-160-archive.tar\ncfa500-2ZQE_A-170-archive.tar\ncfa500-3BNK_A-8-archive.tar\ncfa500-3BS9_A-104-archive.tar\ncfa500-3C5Z_A-198-archive.tar\ncfa500-3C7Y_A-115-archive.tar\ncfa500-3CXG_A-20-archive.tar\ncfa500-3D0F_A-59-archive.tar\ncfa500-3DMS_A-137-archive.tar.bz2\ncfa500-3DWT_A-54-archive.tar\ncfa500-3DX5_A-189-archive.tar\ncfa500-3EZL_A-64-archive.tar.bz2\ncfa500-3EZT_A-102-archive.tar.bz2\ncfa500-3FK8_A-55-archive.tar\ncfa500-3GG3_A-175-archive.tar\ncfa500-3H9X_A-52-archive.tar\ncfa500-3HDC_A-122-archive.tar\ncfa500-3HMF_A-66-archive.tar\nmerkl\ntempstorage\n'

Wunschausgabe ist so, dies klappte wenn ich "cfa" der split()-Methode mitgebe, ich will aber eigentlich, dass \n die Tokens trennt:
Item: 500-2K73_A-31-archive.tar\n
Item: 500-2K9H_A-45-archive.tar\n
Item: 500-2KHV_A-28-archive.tar\n
Item: 500-2KI8_A-16-archive.tar\n
Item: 500-2NZ0_B-6-archive.tar\n
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Statt

Code: Alles auswählen

output = subprocess.check_output(["ls"], cwd=path)
würde ich os.listdir() verwenden.
Dein Kommentar in Zeile 6 ist auch irreführend, da du eben keine Liste sondern einen String erstellst, den du anschließend wieder zerpflücken willst.
Iteriere stattdessen über die einzelnen Bestandteile der Liste, dann hat sich dein Problem von selbst erledigt.
Antworten