AttributeError: lower

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
ET
User
Beiträge: 6
Registriert: Donnerstag 12. Juni 2008, 10:18
Wohnort: Bochum
Kontaktdaten:

AttributeError: lower

Beitragvon ET » Freitag 5. Dezember 2008, 10:29

Hallo liebe Community,

ich habe erst vor einigen tagen mit Python angefangen und bin jetzt auf etwas gestossen, wo ich leider nicht weiter weiss.

Ich habe eine simple GUI mit PyQT4 erstellt. Beim click auf einen Button ("Quellverzeichnis") wird bei mir diese Methode aufgerufen.

Code: Alles auswählen

def onSource(self):
        self.directorySource = QtGui.QFileDialog.getExistingDirectory(self,
                    self.tr("Verzeichnis mit allen TFWs (Quelle)"),
                    "C:\\Python25\\myScripts\\CopyTFW\\quelle",
                    QtGui.QFileDialog.DontResolveSymlinks | QtGui.QFileDialog.ShowDirsOnly)
       
        if not self.directorySource.isEmpty():     
            print os.path.isdir(self.directorySource)
            print os.path.normcase(self.directorySource)



und dan erhalte ich das als Ausgabe in der Konsole:
[code=]
True
Traceback (most recent call last):
File "C:\Python25\myScripts\CopyTFW\CopyTFW.exe.py", line 24, in onSource
print os.path.normcase(self.directorySource)
File "C:\Python25\Lib\ntpath.py", line 42, in normcase
return s.replace("/", "\\").lower()
AttributeError: lower
[/code]

Das erste True sagt mir ja, dass es sich hier um einen Verzeichnis handelt, aber warum bekomme ich anschliessend ein Traceback wenn ich diesen Pfad in Normcase umwandeln möchte und warum sagt er "AttributeError: lower"?
BlackJack

Beitragvon BlackJack » Freitag 5. Dezember 2008, 10:58

Wenn ich mal raten müsste, gibt der Qt-Dialog ein `QString`-Exemplar zurück und das hat keine `lower()`-Methode.
ET
User
Beiträge: 6
Registriert: Donnerstag 12. Juni 2008, 10:18
Wohnort: Bochum
Kontaktdaten:

Beitragvon ET » Freitag 5. Dezember 2008, 11:17

Danke... habe schon erkannt. Ich wusste nur nicht, dass es ein QString ist. Mit str(unicode(self.directorySource)) ist nun alles ok. :D
ET
User
Beiträge: 6
Registriert: Donnerstag 12. Juni 2008, 10:18
Wohnort: Bochum
Kontaktdaten:

Beitragvon ET » Freitag 5. Dezember 2008, 11:30

ET hat geschrieben:Danke... habe schon erkannt. Ich wusste nur nicht, dass es ein QString ist. Mit str(unicode(self.directorySource)) ist nun alles ok. :D
neee... so ists besser!

unicode(self.directorySource) :oops:
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Re: AttributeError: lower

Beitragvon cofi » Freitag 5. Dezember 2008, 15:55

ET hat geschrieben:

Code: Alles auswählen

<snip>
    "C:\\Python25\\myScripts\\CopyTFW\\quelle",
<snap>



Besser:

Code: Alles auswählen

<snip>
    r"C:\Python25\myScripts\CopyTFW\quelle",
<snap>

;) Wobei das natürlich schwer plattformabhängig ist ;)
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Re: AttributeError: lower

Beitragvon numerix » Freitag 5. Dezember 2008, 15:58

cofi hat geschrieben:
ET hat geschrieben:

Code: Alles auswählen

<snip>
    "C:\\Python25\\myScripts\\CopyTFW\\quelle",
<snap>



Besser:

Code: Alles auswählen

<snip>
    r"C:\Python25\myScripts\CopyTFW\quelle",
<snap>


Was ist daran "besser"?
lunar

Beitragvon lunar » Freitag 5. Dezember 2008, 19:30

Es ist kürzer ... am besten wäre es natürlich, wenn das gar nicht da wäre ;)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder