Utiliser une chaîne brute:
>>> foo = r'baz "\"'
>>> foo
'baz "\\"'
Notez que même s'il est mauvais, c'est en fait la droite. Il y a une seule barre oblique inverse dans la chaîne foo
.
Cela arrive parce que quand vous tapez foo
à l'invite de commandes, python affiche le résultat de l' __repr__()
sur la chaîne. Cela conduit à celui-ci (notez une seule barre oblique inverse et pas de guillemets autour de l' print
ed string):
>>> foo = r'baz "\"'
>>> foo
'baz "\\"'
>>> print foo
baz "\"
Et nous allons continuer à aller de l'avant car il y a plus de barre oblique inverse astuces. Si vous voulez avoir une barre oblique inverse à la fin de la chaîne et de l'utilisation de la méthode ci-dessus, vous vous trouverez face à un problème:
>>> foo = r'baz \'
File "<stdin>", line 1
foo = r'baz \'
^
SyntaxError: EOL while scanning single-quoted string
Premières chaînes ne fonctionnent pas correctement lorsque vous faites cela. Vous devez utiliser un string et d'échapper à vos barres obliques inverses:
>>> foo = 'baz \\'
>>> print foo
baz \
Toutefois, si vous travaillez avec des noms de fichiers Windows, vous êtes dans la douleur. Ce que vous voulez faire est d'utiliser des barres obliques et le os.path.normpath()
fonction de:
myfile = os.path.normpath('c:/folder/subfolder/file.txt')
open(myfile)
Cela permettra d'économiser beaucoup de s'échapper et de cheveux-déchirure. Cette page a été portée de main lorsque vous allez à travers ce il ya un moment.