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

"扫描单引号字符串时EOL"?(字符串中的反斜杠)

如何解决《"扫描单引号字符串时EOL"?(字符串中的反斜杠)》经验,为你挑选了5个好方法。

反斜杠字符被解释为转义符.对Windows窗口使用双反斜杠:

>>> xp1 = "\\Documents and Settings\\"
>>> xp1
'\\Documents and Settings\\'
>>> print xp1
\Documents and Settings\
>>> 


Torsten Mare.. 11

除了黑名单问题,不要使用"+"运算符连接路径 - 请os.path.join改用.

此外,构建用户主目录的路径,就像在新版本的Windows上可能会失败一样.pywin32中有API函数.



1> gimel..:

反斜杠字符被解释为转义符.对Windows窗口使用双反斜杠:

>>> xp1 = "\\Documents and Settings\\"
>>> xp1
'\\Documents and Settings\\'
>>> print xp1
\Documents and Settings\
>>> 



2> Torsten Mare..:

除了黑名单问题,不要使用"+"运算符连接路径 - 请os.path.join改用.

此外,构建用户主目录的路径,就像在新版本的Windows上可能会失败一样.pywin32中有API函数.



3> Markus Jarde..:

您可以使用该os.path.expanduser函数获取用户主目录的路径.它甚至不必是现有用户.

>>> import os.path
>>> os.path.expanduser('~foo')
'C:\\Documents and Settings\\foo'
>>> print os.path.expanduser('~foo')
C:\Documents and Settings\foo
>>> print os.path.expanduser('~')
C:\Documents and Settings\MizardX

" ~user"扩展到用户主目录的路径.只需将一个" ~"扩展到当前用户主目录.



4> MiniQuark..:

与许多其他语言一样,Python使用反斜杠作为转义字符(因此,xp1 = ...行末尾的双引号被视为字符串的一部分,而不是字符串的分隔符).

这实际上是非常基本的东西,所以我强烈建议你在继续之前阅读python教程.

您可能对原始字符串感兴趣,它不会逃避反斜杠.只需在字符串之前添加r:

xp1 = r"\Documents and Settings\"

此外,在操作文件路径时,您应该使用os.path模块,该模块将使用"/"或"\",具体取决于运行程序的操作系统.例如:

import os.path
xp1 = os.path.join("data","cities","geo.txt")

将在Linux上生成"data/cities/geo.txt",在Windows上生成"data\cities\geo.txt".


原始字符串不能以奇数个反斜杠结尾。试试吧。

5> Mark Tolonen..:

\"被解释为“在字符串中插入双引号,因此您缺少字符串文字的终止引号。请注意,原始字符串r"\"也无济于事。

从文档引用(粗体是我的):

如果存在'r'或'R'前缀,则字符串中包含反斜杠后面的字符而不会更改,并且所有反斜杠都保留在字符串中。例如,字符串文字r“ \ n”由两个字符组成:反斜杠和小写字母'n'。可以使用反斜杠对字符串引号进行转义,但反斜杠仍保留在字符串中;例如,r“ \”“是由两个字符组成的有效字符串文字:反斜杠和双引号; r” \“不是有效的字符串文字(即使原始字符串也不能以奇数个反斜杠结尾)。特别是,原始字符串不能以单个反斜杠结尾(因为反斜杠会转义以下引号字符)。还要注意,单个反斜杠后跟换行符被解释为这两个字符是字符串的一部分,而不是换行符。

@MizardX给出的答案是正确编写您正在做的事情的正确方法。

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