Wie kann ich \\ unter Window zu / umwandeln

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.
boostpy2005
User
Beiträge: 31
Registriert: Freitag 31. März 2006, 14:15

Wie kann ich \\ unter Window zu / umwandeln

Beitragvon boostpy2005 » Dienstag 9. Mai 2006, 16:28

Hallo,

z.B. eine Verzeichnisangabe Test\\Me, wollte ich zu Test/Me umwandeln

Man kann durch newString = oldString.replace("\\", "/") umwandeln. Aber ich brauche eine elegantere Lösung.

Unter irgendein Modul (os?) gibt es eine solche Funktion, aber ich habe vergessen!

Kann jemand weiter helfen!
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Dienstag 9. Mai 2006, 16:29

os.path.join
boostpy2005
User
Beiträge: 31
Registriert: Freitag 31. März 2006, 14:15

Beitragvon boostpy2005 » Dienstag 9. Mai 2006, 16:42

Joghurt hat geschrieben:os.path.join


os.path.join("Test", "Me") = "Test\\Me"

Danke, aber es ist, was ich haben will.
boostpy2005
User
Beiträge: 31
Registriert: Freitag 31. März 2006, 14:15

Beitragvon boostpy2005 » Dienstag 9. Mai 2006, 16:58

Durch "/".join(os.path.split("Test\\Me"))
"Test/Me" erhalten.

gibt es eine bessere Alternative?
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Dienstag 9. Mai 2006, 19:28

os.path.split splittet unter Windows \ und unter Unix /, geht also nicht.

Was spricht denn gegen replace("\\","/")? Das ist die eleganteste Methode; ich weiss nicht, was du dagegen hast.
Du kannst natürlich auch

Code: Alles auswählen

"/".join(oldstring.split("\\"))
schreiben, nur wozu?
Benutzeravatar
Mawilo
User
Beiträge: 446
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Beitragvon Mawilo » Dienstag 9. Mai 2006, 20:30

eventuell so?:

Code: Alles auswählen

import os.path
>>> print os.path.normpath('c:/Python/Lib/site-packages')
c:\Python\Lib\site-packages


Stephan
boostpy2005
User
Beiträge: 31
Registriert: Freitag 31. März 2006, 14:15

Beitragvon boostpy2005 » Dienstag 9. Mai 2006, 21:36

Joghurt hat geschrieben:os.path.split splittet unter Windows \ und unter Unix /, geht also nicht.

Was spricht denn gegen replace("\","/")? Das ist die eleganteste Methode; ich weiss nicht, was du dagegen hast.
Du kannst natürlich auch

Code: Alles auswählen

"/".join(oldstring.split("\"))
schreiben, nur wozu?


Hallo,

Es ist OK. Ab und zu habe ich den String wie "Test\\Me/Mine", es wäre besser, auf einen Schlag zu konvertieren.

Deswegen wollte ich eine bessere Lösung!
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Beitragvon querdenker » Mittwoch 10. Mai 2006, 07:56

Nochmal einen dazu:

Code: Alles auswählen

p='\\this\\is/a/test'
p=os.path.normpath(p)  # \\this\\is\\a\\test
p=p.replace(os.path.sep,os.path.altsep) #/this/is/a/test



mfg, querdenker
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Mittwoch 10. Mai 2006, 12:29

Das geht unter Unix allerdings nicht, da 1. normpath mit \ nichts anfangen kann und zweitens os.path.altsep=None ist.
BlackJack

Beitragvon BlackJack » Mittwoch 10. Mai 2006, 22:04

boostpy2005 hat geschrieben:
Joghurt hat geschrieben:os.path.split splittet unter Windows \ und unter Unix /, geht also nicht.

Was spricht denn gegen replace("\","/")? Das ist die eleganteste Methode; ich weiss nicht, was du dagegen hast.
Du kannst natürlich auch

Code: Alles auswählen

"/".join(oldstring.split("\"))
schreiben, nur wozu?


Es ist OK. Ab und zu habe ich den String wie "Test\\Me/Mine", es wäre besser, auf einen Schlag zu konvertieren.

Deswegen wollte ich eine bessere Lösung!


Ich versteh's immer noch nicht. Was ist denn daran so schlecht? Und was ist bei folgendem nicht "auf einen Schlag"?

Code: Alles auswählen

In [2]:"Test\\Me/Mine".replace('\\', '/')
Out[2]:'Test/Me/Mine'

Wer ist online?

Mitglieder in diesem Forum: beerus, Bing [Bot], r.barrios, Tholo