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

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!
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

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

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

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

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

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: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

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

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

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
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Das geht unter Unix allerdings nicht, da 1. normpath mit \ nichts anfangen kann und zweitens os.path.altsep=None ist.
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'
Antworten