双反斜杠没有错,python向用户 表示 它的方式。在每个双反斜杠中\\
,第一个会 转义 第二个,以表示实际的反斜杠。如果a = r'raw s\tring'
和b = 'raw s\\tring'
(没有’r’和显式双斜杠),则它们都表示为'raw s\\tring'
。
>>> a = r'raw s\tring'
>>> b = 'raw s\\tring'
>>> a
'raw s\\tring'
>>> b
'raw s\\tring'
为了澄清起见,在 打印 字符串时,您会看到它的用法,就像在路径中一样-仅带有一个反斜杠:
>>> print(a)
raw s\tring
>>> print(b)
raw s\tring
在这种打印的字符串情况下,\t
并不表示 制表符 ,它是一个反斜杠,\
后跟字母“ t”。
否则,没有’r’前缀且带有单个反斜杠的字符串将转义 其后 的字符,从而使它在==选项卡 后 评估’t’:
>>> t = 'not raw s\tring' # here '\t' = tab
>>> t
'not raw s\tring'
>>> print(t) # will print a tab (and no letter 't' in 's\tring')
not raw s ring
因此,在PDF路径+名称中:
>>> item = 'xyz'
>>> PDF = r'C:\Users\user\Desktop\File_%s.pdf' % item
>>> PDF # the representation of the string, also in error messages
'C:\\Users\\user\\Desktop\\File_xyz.pdf'
>>> print(PDF) # "as used"
C:\Users\user\Desktop\File_xyz.pdf
有关 转义序列的 更多信息,请参见表。另请参阅__str__
VS__repr__
。