Seite 1 von 1

von GUI erstellten Pfad mit copytree kopieren

Verfasst: Montag 27. September 2010, 07:18
von Arno
Guten Tag zusammen..Nachdem mir bei meinem ersten Problem erfolgreich geholfen werden konnte, habe ich bereits eine nächste Frage.
Das Ziel meines Problemes ist mit shutil.copytree ein Verzeichniss in ein anderes Verzeichniss zu kopieren. Dies funktioniert auch tadellos wenn ich die Pfade von Quelle und Ziel von Hand eingebe.. Bsp: C:\Temp\X\Y. Jetz möchte ich die Quelle aber nicht statisch eingeben sondern über ein GUI auswählen können. Das heisst ich übergebe den ausgelesenen Pfad einer Variable und setzt die dann als Quelle bei shutil.copytree ein. Nur leider bekomme ich dauernd folgende Fehlermeldung:

Traceback (most recent call last):
File "C:\temp\Laesser\Entwicklung\Script\wxScriptH.py", line 64, in Start
symlinks = False)
File "C:\Python27\lib\shutil.py", line 168, in copytree
names = os.listdir(src)
WindowsError: [Error 123] Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch: u'C:\\Dokumente und Einstellungen\\Scharn\\Eigene Dateien\\00 SIGMATEK\\Administration\n\\*.*'

Wenn ich aber diese Variable Printe dann sieht die so aus und wird korrekt ausgegeben und funktioniert auch mit dem kopieren:

C:\Dokumente und Einstellungen\Scharn\Eigene Dateien\00 SIGMATEK\Administration

Hier noch mein Code zu diesem Problem:

Code: Alles auswählen

 #Bei Start wird das kopieren des Trees von Quelle nach Ziel gehandhabt
    def Start(self, event): # wxGlade: MyFrame.<event_handler>
        #shutil.copytree(r"C:\Temp\Laesser\Entwicklung\Beta\B10134",    #Diese Version von copytree funktioniert
        #                r"C:\Temp\Laesser\Release\R10134\Software",
        #                symlinks = False)

        print test                                                                            #Variable test in der sich mein Pfad befindet

        shutil.copytree(test,                                                              #Diese Version von copytree funktioniert nicht
                        r"C:\Temp\Laesser\Release\R10134\Software",
                        symlinks = False)    
        
        event.Skip() 
Kann mir da jemand weiterhelfen?..Ich habe schon vieles probiert aber nichts hat geholfen.
Liegt das Problem ev am unicode?
Besten Dank im voraus.
Grüsse Arno

Re: von GUI erstellten Pfad mit copytree kopieren

Verfasst: Montag 27. September 2010, 07:40
von mkesper
Hmm, dein Pfadname enthält ein "\n", also ein Newline, wo kommt das her?

Re: von GUI erstellten Pfad mit copytree kopieren

Verfasst: Montag 27. September 2010, 08:31
von Arno
Hallo hier bin ich nochmals..Heute scheint ein guter Montag zu sein. Ich hab das Problme endeckt wo ich den Fehler gemacht hatte.
Ich hab den Pfad folgendermassen ausgelesen gemäss Beispiele von wxPython:

Code: Alles auswählen

test = '%s\n' % dlg.GetValue()
Mit folgendem Befehl funktioniert es:

Code: Alles auswählen

test = dlg.GetValue()
Grüsse Arno

Re: von GUI erstellten Pfad mit copytree kopieren

Verfasst: Montag 27. September 2010, 08:41
von Arno
Danke mkesper für deine Hilfe.
Die Newline kam von einem Beispiel (DirDialog) in wxPython.

Re: von GUI erstellten Pfad mit copytree kopieren

Verfasst: Montag 27. September 2010, 12:04
von mkesper
Kaum macht man es richtig, geht es auch schon! ;)
Das mit dem Newline macht vermutlich im Original Sinn, weil das Ergebnis auf ein write()-Methode ausgegeben wird.

Re: von GUI erstellten Pfad mit copytree kopieren

Verfasst: Montag 27. September 2010, 15:54
von Arno
:D Da hast du recht..Nur ist aller Anfang schwer :-)