Seite 1 von 1

Probleme bei Kobination von raw_input() und os.path.join()

Verfasst: Dienstag 20. November 2007, 15:09
von boney
Hiho!

Ich will einen neuen Ordner im aktuellen Verzeichnis erstellen lassen (mit Wunschname des Users) und überprüfe erst, ob der Ordner schon existent ist:

Code: Alles auswählen

import os
ordner = raw_input("Name des Ordners: ")
pfad = os.path.join(os.getcwd(),ordner)

if os.path.isdir(pfad):
    print "Jaaa es ist ein Ordner"
Problem ist, dass nichts angezeigt wird, obwohl der Ordner exisitert. Das geht auch schön mit Python zu überprüfen mit:

Code: Alles auswählen

pfad2 = os.path.join(os.getcwd(),"test")
if os.path.isdir(pfad2):
    print "Nr. 2 ist ein Ordner"
Ich verstehe nicht, warum er beim 1. Bsp nichts anzeigt. Der Pfad müßte doch identisch sein (was er laut Ausgabe auch ist). raw_input() liefert ja auch einen String und "test" ist ja auch ein String.
Wo liegt mein Denkfehler? Bzw. wie kann man es andres machen?

Vielen Dank!

Lieber Gruß
Boney

Verfasst: Dienstag 20. November 2007, 15:36
von keppla
erstmal scheint mir die überprüfung "isdir" unlogisch, denn die sagt False, wenn zwar eine Datei existiert, diese aber kein verzeichnis ist.

Zweitens funktioniert bei mir (ubuntu, gutsy) der Code scheinbar.
Hast du dir mal den Pfad ausgeben lassen, der mit deiner Eingabe gebaut wird? Ist da vielleicht irgendwas wie Laufwerksbuchstaben (kann ich nicht nachvollziehen ;) ) falsch?

Verfasst: Dienstag 20. November 2007, 15:43
von boney
Mir geht es nur um ein Verzeichnis. Dateien sind mir egal.

Die Ausgabe von den Pfaden sieht dann so aus:

Code: Alles auswählen

C:\workspace\queue\test
C:\workspace\queue\test
Also m.E. indentisch. Bin (wie man sieht) unter Windows unterwegs.
Ich finde das total strange.......

Verfasst: Dienstag 20. November 2007, 15:48
von keppla
Mir geht es nur um ein Verzeichnis. Dateien sind mir egal.
Sicher? Du würdest also versuchen, ein Verzeichnis anzulegen, wenn es bereits eine Datei gibt die so heist, was das ganze fehlschlagen lassen muss?

Haben die ausgegebenen Pfade folgende Leerzeichen? Lass die mal mit "" drumrum ausgeben.

Verfasst: Dienstag 20. November 2007, 15:53
von boney
Ja, sry, stimmt natürlich was du sagst mit den Dateien. Hab das vorhin falsch aufgefasst.

Wie meinst du das mit den "" drum rum ausgeben lassen?
So wohl nicht, oder?

Code: Alles auswählen

print "pfad"

Verfasst: Dienstag 20. November 2007, 16:10
von BlackVivi

Code: Alles auswählen

print '"' + pfad2 + '"'
Dadurch erkennt er, ob'n Leerzeichen am Ende ist.

Verfasst: Dienstag 20. November 2007, 16:14
von Rebecca
Das kann repr doch viel besser...

Verfasst: Dienstag 20. November 2007, 16:16
von boney
Perfekt :) raw_input zieht gleich noch das "ENTER" mit rein.

Code: Alles auswählen

"C:\workspace\queue\test
"
"C:\workspace\queue\test"
Ist jetzt nur noch die Frage wie ich es rausbekomme. Gibt's da irgendwas vorgefertigtes?

Verfasst: Dienstag 20. November 2007, 16:17
von BlackVivi
boney hat geschrieben:Perfekt :) raw_input zieht gleich noch das "ENTER" mit rein.

Code: Alles auswählen

"C:\workspace\queue\test
"
"C:\workspace\queue\test"
Ist jetzt nur noch die Frage wie ich es rausbekomme. Gibt's da irgendwas vorgefertigtes?
.strip()

@Rebecca
Ein Tag, an dem man nichts lernt, ist ein verlorener Tag. Danke.

Verfasst: Dienstag 20. November 2007, 16:19
von boney
Perfekt. Gracias an alle für euren Hirnschmalz!

Verfasst: Dienstag 20. November 2007, 17:21
von BlackJack
Wobei man vielleicht noch anmerken sollte, das `raw_input()` *kein* '\n' am Ende liefert. Wenn es das doch tut ist irgendwas kaputt. Ich glaube irgendeine IDE hat dieses tolle "Feature".

Verfasst: Mittwoch 21. November 2007, 09:17
von boney
Jep, da könntest du gut recht haben. Ich "entwickle ;)" unter Eclipse mit pydev