[gelöst] Problem mit raw_input

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.
Majestic
User
Beiträge: 8
Registriert: Mittwoch 23. Juli 2008, 13:25

[gelöst] Problem mit raw_input

Beitragvon Majestic » Sonntag 17. August 2008, 15:32

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!!
Zuletzt geändert von Majestic am Sonntag 17. August 2008, 17:27, insgesamt 1-mal geändert.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Beitragvon numerix » Sonntag 17. August 2008, 15:37

Code: Alles auswählen

>>> s = "dateiname\r"
>>> s
'dateiname\r'
>>> s.strip()
'dateiname'
Majestic
User
Beiträge: 8
Registriert: Mittwoch 23. Juli 2008, 13:25

Beitragvon Majestic » Sonntag 17. August 2008, 16:35

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.?
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Beitragvon Trundle » Sonntag 17. August 2008, 16:51

Du wirst das ``\r`` beim ``print`` nur nicht sehen. Probier mal ``print repr(file_name)``.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Beitragvon cofi » Sonntag 17. August 2008, 17:09

Das `\r' ist eine Escape-Sequenz für ein Whitespace - genauer gesagt nen Carriage Return.

Wie du Whitespaces losbekommst, hat numerix ja schon beschrieben.
Majestic
User
Beiträge: 8
Registriert: Mittwoch 23. Juli 2008, 13:25

Beitragvon Majestic » Sonntag 17. August 2008, 17:26

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ß!
BlackJack

Beitragvon BlackJack » Sonntag 17. August 2008, 21:13

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.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Beitragvon sma » Montag 18. August 2008, 08:16

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
Majestic
User
Beiträge: 8
Registriert: Mittwoch 23. Juli 2008, 13:25

Beitragvon Majestic » Montag 18. August 2008, 13:56

danke für die info stefan! ja genau das benutze ich! gut zu wissen.
bei pydev unter linux kommt das problem übrigens nicht.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], pixewakb