使用原始字符串:
>>> foo = r'baz "\"'
>>> foo
'baz "\\"'
请注意,虽然看起来不对,但实际上是对的。字符串foo 中只有一个反斜杠。
这是因为当你在提示符下键入foo 时,python 会在字符串上显示__repr__() 的结果。这会导致以下结果(注意只有一个反斜杠,printed 字符串周围没有引号):
>>> foo = r'baz "\"'
>>> foo
'baz "\\"'
>>> print(foo)
baz "\"
让我们继续,因为还有更多的反斜杠技巧。如果你想在字符串末尾有一个反斜杠并使用上面的方法你会遇到一个问题:
>>> foo = r'baz \'
File "<stdin>", line 1
foo = r'baz \'
^
SyntaxError: EOL while scanning single-quoted string
当您这样做时,原始字符串无法正常工作。您必须使用常规字符串并转义反斜杠:
>>> foo = 'baz \\'
>>> print(foo)
baz \
但是,如果您使用的是 Windows 文件名,则会遇到一些麻烦。您要做的是使用正斜杠和os.path.normpath() 函数:
myfile = os.path.normpath('c:/folder/subfolder/file.txt')
open(myfile)
这将节省大量的逃跑和头发撕裂。 This page 前一阵子的时候很方便。