免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3633 | 回复: 3
打印 上一主题 下一主题

windows中关于末尾"\"换行符的疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-25 20:54 |只看该作者 |倒序浏览
本帖最后由 woodcube 于 2010-12-25 20:55 编辑

环境:win7 + eclipse + python2.6.4 + pydev

有如下一条赋值语句,运行时出问题了,如下:
    target_dir = r'G:\eclipse_workspace\backup\test\path3\'
                                                          ^
SyntaxError: EOL while scanning string literal

上面的'^'指向的是最后一个单引号
怀疑解释器将最后一个'\'当成了换行了,所以最后的单引号就成了非法字符了。
将字符串首的r去掉也不行,采用下面的方法解决了:
target_dir = r'G:\eclipse_workspace\backup\test\path3\\'

实在不解,r没起作用,无论有没有加都一样,而且为什么前面的'\'符号没有被当做换行符,偏偏最后一个'\'就成了换行符了,这个符号后面明明还有一个单引号的。

求知道的人给解释一下,谢谢。

论坛徽章:
0
2 [报告]
发表于 2010-12-25 23:46 |只看该作者
When an 'r' or 'R' prefix is present, a character following a backslash is included in the string without change, and all backslashes are left in the string. For example, the string literal r"\n" consists of two characters: a backslash and a lowercase 'n'. String quotes can be escaped with a backslash, but the backslash remains in the string; for example, r"\"" is a valid string literal consisting of two characters: a backslash and a double quote; r"\" is not a valid string literal (even a raw string cannot end in an odd number of backslashes). Specifically, a raw string cannot end in a single backslash (since the backslash would escape the following quote character). Note also that a single backslash followed by a newline is interpreted as those two characters as part of the string, not as a line continuation.

论坛徽章:
0
3 [报告]
发表于 2010-12-26 01:13 |只看该作者
谢谢,理解了

论坛徽章:
0
4 [报告]
发表于 2010-12-26 11:49 |只看该作者
\ 不是换行,是转义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP