Seite 1 von 1

Wie kann ich \\ unter Window zu / umwandeln

Verfasst: Dienstag 9. Mai 2006, 16:28
von boostpy2005
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!

Verfasst: Dienstag 9. Mai 2006, 16:29
von Joghurt
os.path.join

Verfasst: Dienstag 9. Mai 2006, 16:42
von boostpy2005
Joghurt hat geschrieben:os.path.join
os.path.join("Test", "Me") = "Test\\Me"

Danke, aber es ist, was ich haben will.

Verfasst: Dienstag 9. Mai 2006, 16:58
von boostpy2005
Durch "/".join(os.path.split("Test\\Me"))
"Test/Me" erhalten.

gibt es eine bessere Alternative?

Verfasst: Dienstag 9. Mai 2006, 19:28
von Joghurt
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?

Verfasst: Dienstag 9. Mai 2006, 20:30
von Mawilo
eventuell so?:

Code: Alles auswählen

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

Verfasst: Dienstag 9. Mai 2006, 21:36
von boostpy2005
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!

Verfasst: Mittwoch 10. Mai 2006, 07:56
von querdenker
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

Verfasst: Mittwoch 10. Mai 2006, 12:29
von Joghurt
Das geht unter Unix allerdings nicht, da 1. normpath mit \ nichts anfangen kann und zweitens os.path.altsep=None ist.

Verfasst: Mittwoch 10. Mai 2006, 22:04
von BlackJack
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'