我正在寻找一种在python中使用单个反斜杠为字符串添加前缀的方法,例如: “]” - > “]”。因为“\”不是python中的有效字符串,所以简单
mystring = '\' + mystring
不起作用。我目前正在做的是这样的事情:
mystring = r'\@@@' + mystring
mystring.replace('@@@','')
虽然这在大多数情况下都有效,但它并不优雅,也会导致包含“@@@”的字符串或“填充”设置的字符串出现问题。有没有更好的方法来做到这一点?
答案 0 :(得分:3)
你需要使用第二个转义反斜杠,使其成为字面反斜杠:
mystring = "\\" + mystring
否则它会认为你试图逃避"
,这反过来意味着你没有引用来终止字符串
通常,您可以使用原始字符串表示法(r'string'
),但当反斜杠是最后一个字符时,它不会起作用
print a
与a
之间的差异:
>>> a = 'hello'
>>> a = '\\' + a
>>> a
'\\hello'
>>> print a
\hello
答案 1 :(得分:2)
Python字符串有一个名为转义字符的功能。这些允许你在字符串中做特殊的事情,比如显示引号(“或”)而不关闭你正在输入的字符串
所以当你输入
mystring = '\' + mystring
\'是一个转义的撇号,意味着你的字符串现在有一个撇号,这意味着它实际上并没有关闭,你可以看到它,因为该行的其余部分是彩色的。
要键入反斜杠,您必须转义一个反斜杠,如下所示:
>>> aBackSlash = '\\'
>>> print(aBackSlash)
\
答案 2 :(得分:1)
您应该按如下方式转义反斜杠:
mystring = "\\" + mystring
这是因为如果你做'\'
,它将最终逃脱第二次引用。因此,要从字面上对待反斜杠,你必须逃避它。
>>> s = 'hello'
>>> s = '\\' + s
>>> print
\hello
>>> mystring = 'it actually does work'
>>> mystring = '\\' + mystring
>>> print mystring
\it actually does work
答案 3 :(得分:1)
作为解决问题的另一种方法,您是否考虑过字符串格式?
r'\%s' % mystring
或:
r'\{}'.format(mystring)