wie kann ich mit "os.path.join" einen Pfad erzeugen, der dann als Seperator 2 Backslashes hat? Also zB:
CU,\\test\log\\part1
API
Code: Alles auswählen
>>> os.path.join("foo", "bar")
'foo\\bar'
Ungerne würde ich das mit "replace" machen...C:\\Test\\Log\\tmp
Code: Alles auswählen
os.path.join("C:\\Test\\Log", "tmp")
C:\\Test\\Log\\tmp
Code: Alles auswählen
#! /usr/bin/env python
import os
c = "C:\Test\Log"
x = os.path.join(c, "tmp")
t = x.split()
print t
print t[0]
Trotzdem jetzt noch ein paar Fragen:['C:\\Test\\Log\\tmp']
C:\Test\Log\tmp
Das ist der Unterschied zwischen der Repräsentation des Strings (repr) und dem tatsächlichen Inhalt. Der Backslash ist ein Escape-Zeichen. Um in einem String einen Backslash zu erzeugen musst du entweder zwei angeben oder einen raw string (r'C:\temp') verwenden. Unterlässt du das, dann bekommst du über kurz oder lang Probleme. Ein '\t' ist mitnichten ein String mit den zwei Zeichen "\" und "t" sondern ein String mit einem Zeichen, nämlich dem Tabulatorsymbol.api hat geschrieben:Wenn ich den String aus der Liste auslese - also mit [0] darauf zugreife, warum wird es mir dann wieder mit nur einem Backslash dargestellt?
- Ist der Code so ok, oder macht man so etwas anders - gibt es da besseres?
Code: Alles auswählen
import os
folder = r'C:\Test\Log'
new_folder = os.path.join(folder, 'tmp')
parts = new_folder.split('\\')
braindamaged_folder = '\\\\'.join(parts)
print(braindamaged_folder)
Code: Alles auswählen
braindamaged_folder = '\\\\'.join(os.path.join(folder, 'tmp').split('\\'))
Code: Alles auswählen
t = [ x ]
Code: Alles auswählen
print '[%s]'%','.join(repr(elem) for elem in lst)
Code: Alles auswählen
print x.replace('\\','\\\\')