当前位置:  开发笔记 > 编程语言 > 正文

在Python字符串文字中引用反斜杠

如何解决《在Python字符串文字中引用反斜杠》经验,为你挑选了2个好方法。

我有一个包含双引号和反斜杠的字符串,我想在Python中设置一个变量.但是,每当我尝试设置它时,引号或斜杠都会被删除或转义.这是一个例子:

>>> foo = 'baz "\"'
>>> foo
'baz ""'

所以,而不是baz "\"像我想要的那样baz "".如果我然后试图逃避反斜杠,它也没有帮助:

>>> foo = 'baz "\\"'
>>> foo
'baz "\\"'

现在哪个符合我的要求但不是我原本想要的.你是如何解决这个问题的?



1> Charles Duff..:

你被输出误导了 - 你正在采取的第二种方法实际上做了你想要的,你只是不相信它.:)

>>> foo = 'baz "\\"'
>>> foo
'baz "\\"'
>>> print foo
baz "\"

顺便说一下,还有另一种字符串形式可能更清楚一点:

>>> print r'baz "\"'
baz "\"



2> Harley Holco..:

使用原始字符串:

>>> foo = r'baz "\"'
>>> foo
'baz "\\"'

请注意,虽然它看起来不对,但它确实是正确的.字符串中只有一个反斜杠foo.

发生这种情况是因为当您只是foo在提示符处键入时,python会__repr__()在字符串上显示结果.这导致以下内容(注意只有一个反斜杠,并且printed字符串周围没有引号):

>>> foo = r'baz "\"'
>>> foo
'baz "\\"'
>>> print foo
baz "\"

让我们继续前进,因为有更多的反斜杠技巧.如果你想在字符串的末尾加一个反斜杠并使用上面的方法,你会遇到一个问题:

>>> foo = r'baz \'
  File "", 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)

这将节省大量的逃避和头发撕裂. 这个页面在前一段时间内很方便.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有