Seite 1 von 1

[gelöst] Problem mit raw_input

Verfasst: Sonntag 17. August 2008, 15:32
von Majestic
Hallo,

ich habe folgendes Problem und krieg das grad nicht gelöst:

Ich frage mit raw_input() nach einem Dateinamen. Wenn ich das einfach über print ausgebe steht das auch richtig da. Will ich nun diesen Dateinamen benutzen um eine Datei zu öffnen gibt er mir einen IOError und sagt " No such file or directory: 'Dateiname\r' " Er hängt also noch so ein \r an meinen Dateinamen an..klar, dann kann es ja nicht gehen.

Wie krieg ich das nun hin, dass er das nicht macht??

Danke!!

Verfasst: Sonntag 17. August 2008, 15:37
von numerix

Code: Alles auswählen

>>> s = "dateiname\r"
>>> s
'dateiname\r'
>>> s.strip()
'dateiname'

Verfasst: Sonntag 17. August 2008, 16:35
von Majestic
das versteh ich nicht so ganz. funktioniert zumindest nicht bei mir.

nochmal: zb. file_name = raw_input()
-> dann geb ich einen dateinamen ein; zb. Dateiname
file = open(file_name,'r')
-> hier kommt jetzt der fehler wie oben beschrieben.

mach ich aber print file_name, dann spuckt der korrekterweise Dateiname aus..ohne \r dran. aber bei dem fehler ists mit dem \r dran
ich schnall das irgendwie nicht.?

Verfasst: Sonntag 17. August 2008, 16:51
von Trundle
Du wirst das ``\r`` beim ``print`` nur nicht sehen. Probier mal ``print repr(file_name)``.

Verfasst: Sonntag 17. August 2008, 17:09
von cofi
Das `\r' ist eine Escape-Sequenz für ein Whitespace - genauer gesagt nen Carriage Return.

Wie du Whitespaces losbekommst, hat numerix ja schon beschrieben.

Verfasst: Sonntag 17. August 2008, 17:26
von Majestic
ahh *klick* jetzt hab ich es verstanden!

danke für die schnelle tolle hilfe!!

jop funktioniert so, wie numerix es geschrieben hat..hab das nur nicht gleich verstanden..so ohne kommentar.
@ Trundle: hast recht..mit print repr() sieht man das \r
@ cofi: danke für die info..jetzt weiß ich wenigstens wo das her kommt :)

gruß!

Verfasst: Sonntag 17. August 2008, 21:13
von BlackJack
Eine bessere Lösung wäre es natürlich keine kaputte Entwicklungsumgebung zu verwenden. Das '\r' hat bei `raw_input()` nämlich nichts zu suchen, aber leider schleicht sich das bei Eclipse zum Beispiel da rein.

Verfasst: Montag 18. August 2008, 08:16
von sma
Majestic, benutzt du das Eclipse-Plugin pydev unter Windows? Das hatte bis zur Version 1.3.18 dieses Problem. In 1.3.19 soll es gexfixt. sein.

Stefan

Verfasst: Montag 18. August 2008, 13:56
von Majestic
danke für die info stefan! ja genau das benutze ich! gut zu wissen.
bei pydev unter linux kommt das problem übrigens nicht.