快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

python转义函数,python自动转义

Python什么情况下会输出转义符

可以认为一个是用的是str方法,目的是向终端显示;一个用的repr方法,目的是把数据结构和类型表达出来

成都创新互联公司企业建站,十年网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于成都网站设计、成都网站建设中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。

这是 Python 2 特别讨厌的一点,以至于我实在忍受不了写了个 repl_py27 来绕过该问题。不过最终还是迁移到 Python 3 啦 =w=

Python 2 的世界是个 ASCII 的世界,unicode 是后来加的,所以使用 repr 显示的时候是把所有非 ASCII 的字符转义显示的。你要直接把字符串写出来的话,Python 2 就不会进行任何转义了,于是在支持的终端上,中文就能正常显示了。

print 遇到非字符串时,会调用 str() 函数将对象转成字符串再输出:

class T(object):

...   def __repr__(self):

...     return 'repr'

...   def __str__(self):

...     return 'str'

... 

print T()

str

而很多对象的 __str__ 方法是没有定义的,于是 str() 函数改调用它的 __repr__ 方法。

又:Python 2 的字符串和 unicode 的 str() 输出都是经过转义的。这也是我讨厌 Python 2 的另一个重要原因:

u'中文'

u'\u4e2d\u6587'

'中文'                                                   

'\xe4\xb8\xad\xe6\x96\x87'

python 路径被转义问题

python os 路径被转义的问题,以前常碰到字符串前面加r的情况,不加r有时候有问题有时候没有,也就没深究,这次就碰到一个问题搞了半天发现就是这里路径被转义了。

文件路径中的单双正反斜杠/ \ // \的意义

在python中反斜杠 \ 的功能是转义,例如:\n表示换行,\t 表示水平制表符,也就是tab键。在windows中 反斜杠 \ 也用来表示路径分隔符。

例:

这里\n表示换行,所以输出到K:\imageData就换行了,\4表示输出两个空格,\0 表示八进制编码的ASCII,\0后面的两位数就是8进制数表示的ASCII值,\0后面的8进制数44表示为十进制是4*8+4=36,在ASCII表中正好对应$符号。

如果是在os.path.join()中生成的路径,没法显示的用手改,可以配合split() 和 str.join()方法解决

split("\")把所有有 \ 的地方断开,返回一个列表

rsplit("\",1)把最后出现"\"的地方断开返回一个列表

rsplit()取负数时退化为split()方法

用python怎么解析'%3cp%3e%e5%'

import urllib

rawurl=xxx

url=urllib.unquote(rawurl)

所用模块:urllib

所用函数:urllib.unquote()

案例

import urllib

rawurl = "%E6%B2%B3%E6%BA%90"url = urllib.unquote(rawurl)print url

输出

河源

问题扩展

urllib.unquote()目的是对url编码进行解码,与该函数对应的是编码函数urllib.quote()

123

import urllib urllib.quote("河源")'%E6%B2%B3%E6%BA%90

URL为何要编码、解码?

通常如果一样东西需要编码,说明这样东西并不适合传输。原因多种多样,如Size过大,包含隐私数据。对于Url来说,之所以要进行编码,是因为Url中有些字符会引起歧义。

例如,Url参数字符串中使用key=value键值对这样的形式来传参,键值对之间以符号分隔,如/s?q=abcie=utf-8。如果你的value字符串中包含了=或者,那么势必会造成接收Url的服务器解析错误,因此必须将引起歧义的和=符号进行转义,也就是对其进行编码。

又如,Url的编码格式采用的是ASCII码,而不是Unicode,这也就是说你不能在Url中包含任何非ASCII字符,例如中文。否则如果客户端浏览器和服务端浏览器支持的字符集不同的情况下,中文可能会造成问题。


网站标题:python转义函数,python自动转义
文章网址:http://6mz.cn/article/dschecp.html

其他资讯