-
2021-04-26 19:24:12
python 中文字符串的处理实现代码
2021-01-23 20:22:3913
>>> teststr = '我的eclipse不能正确的解码gbk码!'
>>> teststr
'\xe6\x88\x91\xe7\x9a\x84eclipse\xe4\xb8\x8d\xe8\x83\xbd\xe6\xad\xa3\xe7\xa1\xae\xe7\x9a\x84\xe8\xa7\xa3\xe7\xa0\x81gbk\xe7\xa0\x81\xef\xbc\x81'
>>> tests2 = u'我的eclipse不能正确的解码gbk码!'
>>> test3 = tests2.encode('gb2312')
>>> test3
'\xce\xd2\xb5\xc4eclipse\xb2\xbb\xc4\xdc\xd5\xfd\xc8\xb7\xb5\xc4\xbd\xe2\xc2\xebgbk\xc2\xeb\xa3\xa1'
>>> test3
'\xce\xd2\xb5\xc4eclipse\xb2\xbb\xc4\xdc\xd5\xfd\xc8\xb7\xb5\xc4\xbd\xe2\xc2\xebgbk\xc2\xeb\xa3\xa1'
>>> teststr
'\xe6\x88\x91\xe7\x9a\x84eclipse\xe4\xb8\x8d\xe8\x83\xbd\xe6\xad\xa3\xe7\xa1\xae\xe7\x9a\x84\xe8\xa7\xa3\xe7\xa0\x81gbk\xe7\xa0\x81\xef\xbc\x81'
>>> test3.decode('gb2312').encode('utf-8')
'\xe6\x88\x91\xe7\x9a\x84eclipse\xe4\xb8\x8d\xe8\x83\xbd\xe6\xad\xa3\xe7\xa1\xae\xe7\x9a\x84\xe8\xa7\xa3\xe7\xa0\x81gbk\xe7\xa0\x81\xef\xbc\x81'
>>> test3.decode('gb2312').encode('utf-8') == teststr
True
如上所见,test3变量(gb2312编码)经过解码(变成unicode字符串)后再使用utf-8编码,就成了与teststr值相同的串了.
通过上面的例子我们也发现,unicode字符串是gb2312字符串(windows就使用这种格式)与utf-8字符串(python本身使用)之间的一座桥梁.
点击这里复制本文地址
以上内容由聚米学院网友整理呈现,如对侵犯您的权益,请联系邮箱:fzsbm@qq.com
更多相关内容 -
Python使用中文正则表达式匹配指定中文字符串的方法示例
2020-12-25 14:28:43本文实例讲述了Python使用中文正则表达式匹配指定中文字符串的方法。分享给大家供大家参考,具体如下: 业务场景: 从中文字句中匹配出指定的中文子字符串 .这样的情况我在工作中遇到非常多, 特梳理总结如下. 难点: ... -
Python中文字符串截取问题
2020-09-21 23:33:53web应用难免会截取字符串的需求,Python中截取英文很容易,但是截取utf-8的中文机会截取一半导致一些不是乱码的乱码.其实utf8截取很简单,这里记下来分享给大家 -
Python判断中文字符串是否相等的实例
2021-01-20 04:54:32Python判断两个相等的中文字符串为false,将两个待比较的字符串都把unicode编码设为‘utf-8’也不能解决问题,具体原因如下: 1.首先查看待比较两个字符串的编码格式 ,使用命令 import chardet ...... string_code... -
python 遍历字符串(含汉字)实例详解
2020-12-24 20:56:36python 遍历字符串(含汉字)实例详解 s = "中国china" for j in s: print j 首先一个,你这个’a’是什么编码?可能不是你所想的gbk >>> a='\u4e2d\u56fd' >>> a 这样试试看,如果出来是6个字(word),说明是utf-... -
python获取中文字符串长度的方法
2020-09-19 23:07:49今天小编就为大家分享一篇python获取中文字符串长度的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
python判断字符串以什么结尾的实例方法_python实现字符串的循环
2020-11-22 21:34:52python判判断断字字符符串串以以什什么么结结尾尾的的实实例例方方法法 在本篇文章里小编给大家整理了关于python判断字符串以什么结尾的实例方法 需要的朋 们可以学习参考下 函数 endswith) 作用 判断字符串是否以... -
python字符串替换的2种方法
2020-12-24 15:14:15python 字符串替换 是python 操作字符串的时候经常会碰到的问题,这里简单介绍下字符串替换方法。 python 字符串替换可以用2种方法实现: 1是用字符串本身的方法。 2用正则来替换字符串 下面用个例子来实验下: a = ... -
Python实现字符串中某个字母的替代功能
2020-09-18 13:37:54小编想实现这样一个功能:将输入字符串中的字母 “i” 变成字母 “p”。想着很简单,怎么实现呢?下面小编给大家带来了Python实现字符串中某个字母的替代功能,感兴趣的朋友一起看看吧 -
python清除字符串里非字母字符的方法
2020-12-25 17:12:10本文实例讲述了python清除字符串里非字母字符的方法。分享给大家供大家参考。具体如下: s = "hello world! how are you? 0" # Short version print filter(lambda c: c.isalpha(), s) # Faster version for long ... -
python 判断字符串中是否含有汉字或非汉字的实例
2020-09-19 02:01:30今天小编就为大家分享一篇python 判断字符串中是否含有汉字或非汉字的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
python判断字符串以什么结尾的实例方法
2021-01-19 23:35:15作用:判断字符串是否以指定字符或子字符串结尾,常用于判断文件类型。 相关函数:判断字符串开头 startswith() 函数说明: 语法: string.endswith(str, beg=[0,end=len(string)]) string[beg:end].endswith(str) ... -
Python2与Python3关于字符串编码处理的差别总结
2020-09-16 08:10:42主要给大家介绍了Python2与Python3关于字符串编码处理差别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
python 字符串只保留汉字的方法
2020-09-19 22:51:57今天小编就为大家分享一篇python 字符串只保留汉字的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
Python拼接字符串的7种方法总结
2020-09-19 23:58:02主要给大家总结介绍了关于Python拼接字符串的7种方法,分别是来自C语言的%方式、format()拼接方式、() 类似元组方式、面向对象模板拼接、join()拼接方式以及f-string方式,文中通过示例代码介绍的非常详细,需要的... -
Python字符串处理
2022-04-20 15:57:07Python 提供了内置的字符串查找方法find(),利用该方法可以在一个较长的字符串中查找子字符串。如果该字符串中,有一个或者多个子字符串,则该方法返回第一个子串所在位置的最左端索引,若没有找到符合条件的子串,...1.字符串之find()方法查找
Python 提供了内置的字符串查找方法find(),利用该方法可以在一个较长的字符串中查找子字符串。如果该字符串中,有一个或者多个子字符串,则该方法返回第一个子串所在位置的最左端索引,若没有找到符合条件的子串,则返回-1。
find()方法的基本使用语法如下:
source_string.find(sub_string)
其中:
source_string:源字符串; sub_string:待查的目标子字符串; find:字符串查找方法的语法关键字。
例如,在一个字符串中,查找两个单词的位置:
# coding=utf-8 # 创建或者定义一个字符串 source_string = 'The past is gone and static' # 查看"past"在source_string字符串中的位置 print(source_string.find('past')) # 查看"love"在source_string字符串中的位置 print(source_string.find('love'))
输出结果:
4 -1
2.字符串之replace()方法替换
Python 提供了**replace()**方法,用以替换给定字符串中的子串。
其基本使用语法如下:
source_string.replace(old_string, new_string)
其中:
source_string:待处理的源字符串; old_string:被替换的旧字符串; new_string:替换的新字符串; replace:字符串替换方法的语法关键词。
例如,在如下字符串中,用small子串替换big子串:
# coding = utf-8 # 创建一个字符串circle source_string = 'The world is big' # 利用replace()方法用子串"small"代替子串"big" print(source_string.replace('big','small'))
输出结果:
The world is small
3.字符串之split()方法分割
Python 提供了**split()**方法实现字符串分割。该方法根据提供的分隔符,将一个字符串分割为字符列表,如果不提供分隔符,则程序会默认把空格(制表、换行等)作为分隔符。
其基本使用语法如下:source_string.split(separator)
其中:
source_string:待处理的源字符串; separator:分隔符; split:字符串分割方法的关键词。
例如,用+、/还有空格作为分隔符,分割字符串:
# coding = utf-8 # 待处理字符串source_string source_string = '1+2+3+4+5' # 利用split()方法,按照`+`和`/`对source_string字符串进行分割 print(source_string.split('+')) print(source_string.split('/'))
输出结果:
['1', '2', '3', '4', '5'] ['1+2+3+4+5']
4.字符串之len()函数获取长度
Python 提供了len()函数来计算,并返回字符串的长度,即字符串中单个元素的个数。
其基本语法如下:
length = len(target_string)
其中:
target_string: 目标字符串变量; length: 保存字符串长度的变量; len: 获取字符串长度的语法关键词。
下面给出了具体的使用示例:
# coding=utf-8 # 创建一个字符串变量,获取其长度并打印出来 color = 'It is red' length = len(color) print (length) # 直接在len函数中引入字符串内容获得其长度,然后打印出来 print(len('This is a circle!'))
输出结果:
9 17
注意: 从输出结果可以看到,空格也占一个字符元素的位置。
5.大小写转换
Python 提供了upper()和lower()方法,来对字符串进行大小写转换。其中,upper()会将字符串中的所有字符都转换为大写,lower()则将所有字符转换为小写。除此之外,Python 还贴心的提供了title()方法,将字符串所有单词的首字母变成大写,而其他字母依然小写。
各个方法的具体语法如下:
# 将源字符串转换为大写并存入upper_string变量 upper_string = source_string.upper() # 将源字符串转换为小写并存入lower_string变量 lower_string = source_string.lower() # 将源字符串每个词首字母转换为大写并存入title_string变量 title_string = source_string.title()
其中,source_string为待处理的源字符串。具体使用示例如下:
# coding=utf-8 # 创建一个字符串say_hello say_hello = 'Dear my Daughter' # 使用upper()方法对say_hello字符串进行处理 upper_say_hello = say_hello.upper() # 使用lower()方法对say_hello字符串进行处理 lower_say_hello = say_hello.lower() # 使用title()方法对say_hello字符串进行处理 title_say_hello = say_hello.title() # 打印输出四个字符串 print (say_hello+"\n") print (upper_say_hello+"\n") print (lower_say_hello+"\n") print (title_say_hello+"\n")
输出结果:
Dear my Daughter DEAR MY DAUGHTER dear my daughter Dear My Daughter
注意: 由上述打印结果可以看出,上述方法的调用,并不会对原始的 say_hello字符串产生影响,转换后的字符串会存入新的变量中。
6.strip()方法,去除字符串首尾空格
Python 提供了strip()方法,可以去除字符串两侧(不包含内部)全部的空格。使用该方法,也可以通过指定参数,去除两侧指定的特定字符。
注意:在指定参数时,如果参数是多个字符,则该方法会将多个字符逐个去比对,进行删除(区分大小写),直到首尾两侧没有匹配的字符为止。但是,该方法对字符串中间的字符没有影响。
其基本语法如下:
strip_string1 = source_string.strip() string_strip2 = source_string.strip(target_char)
其中:
source_string:待处理的源字符串; strip_string1和strip_string2:处理后的字符串; target_char:需要从源字符串首尾去除的特定字符。
具体使用示例如下:
# coding = utf-8 # 创建一个字符串hello_world hello_world = ' **The world ** is big!* ' # 利用strip()方法处理hello_world字符串 blank_hello_world = hello_world.strip() char_hello_world = hello_world.strip('TH *') # 打印输出转换后的字符串 print(blank_hello_world) print(char_hello_world)
输出结果:
**The world ** is big!* he world ** is big!
-
Python实现计算字符串中出现次数最多的字符示例
2020-12-23 14:23:07本文实例讲述了Python实现计算字符串中出现次数最多的字符。分享给大家供大家参考,具体如下: 1. 看了网上挺多写的方法都没达到我所需要的效果,我干脆自己写了个方法共享给大家 ee = 'aa111(((bbhhhhhh%jjjjjj%... -
将python字符串转化成长表达式的函数eval实例
2021-01-20 00:01:05那么,怎么把一个表示字符串的unicode还原成unicode呢? 函数eval(expression)就可以帮助完成这项工作。 例如: >>>> a = u'\\u674e' >>> print a u'\u674e' >>> print eval(a) 李 该函数的描述: ... -
详解Python中字符串前“b”,“r”,“u”,“f”的作用
2021-01-20 04:07:43后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。 2、字符串前加 r 例:r”\n\n\n\n” 表示一个普通生字符串 \n\n\n\n,而不表示换行了。 作用:... -
Python实现针对含中文字符串的截取功能示例
2020-12-26 08:13:28本文实例讲述了Python实现针对含中文字符串的截取功能。分享给大家供大家参考,具体如下: 对于含多字节的字符串,进行截断的时候,要判断截断处是几字节字符,不能将多字节从中分割,避免截断后乱码 下面给出utf8和... -
python3正则提取字符串里的中文实例
2020-12-31 06:38:18如下所示: ...#提取字符串里的中文,返回数组 pattern=[\u4e00-\u9fa5]+ regex = re.compile(pattern) results = regex.findall(adf中文adf发京东方) print(results) 打印结果: 以上这篇python3正则 -
详解Python 字符串相似性的几种度量方法
2020-09-18 17:23:53主要介绍了详解Python 字符串相似性的几种度量方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
python去掉字符串中重复字符的方法
2020-12-23 12:42:56复制代码 代码如下:If order does not matter, you can use “”.join(set(foo))set() will create a ...If order does matter, you can use collections.OrderedDict in Python 2.7: from collections import OrderedD -
python 中文字符串分割与拼接
2021-03-20 14:28:29python 中文字符串分割与拼接 1. 中文字符串分割 path = 'D:/硕博/博士生期间资料/机器学习/机器学习课程资料/HW1/data/本纪list格式/高祖本纪.txt' with open(path,'r',encoding='utf-8') as f: d1 = f.readlines...python 中文字符串分割与拼接
1. 中文字符串分割
path = 'D:/硕博/博士生期间资料/机器学习/机器学习课程资料/HW1/data/本纪list格式/高祖本纪.txt' with open(path,'r',encoding='utf-8') as f: d1 = f.readlines() #按行读取txt内容
d1是一个list 每一个元素是txt的一行
1 使用
list()函数
将一个字符串按单个汉字分割#将列表中的每一个元素按照单个汉字分割 new_list = [] #新建空列表,用于储存分割之后的单个汉字 for line in d1: line = list(line) #使用list()函数,将每一行的每一个字都变成子列表中的元素 new_list.append(line) for i in range(20): print('---这是new_list的第{}个元素---:'.format(i)) print(new_list[i])
- 使用
re.split(pattern,string,maxsplit=0)
pattern:分隔符
string:待分割字符串
maxsplit:最大分割次数 默认maxsplit=0,即不限制分割次数import re path1 = 'D:/硕博/博士生期间资料/机器学习/机器学习课程资料/HW1/data/本纪/高祖本纪.txt' with open(path1,'r',encoding='utf-8')as f1: d2 = f1.read()#一次性读取txt全部内容
(1)指定单个分隔符
re.split('分割符号',string)
d3 = re.split(',',d2)
【说明】结果返回list,可以看到只有逗号被视为分割依据,按逗号分行
(2)指定多个分隔符re.split([分隔符1,分隔符2,分隔符3],string)
tags = '[,。!]' #通过列表的方式传入多个分隔符 d4 = re.split(tags,d2)
【说明】和上图比较,可以看到进一步地按照句号对字符串进行了分割
2. 中文字符串拼接
(1)list元素拼接
d6 = ''.join(d1) type(d6)
【说明】
d1是一个list
使用’’.join(d1)将d1中的所有元素拼接成一个str
(2)str拼接
直接使用“+”
str_new = string1+string2
- 使用
-
简单讲解Python中的字符串与字符串的输入输出
2020-09-21 17:19:56主要介绍了Python中的字符串与字符串的输入输出,Python3.x版本中默认以Unicode为编码,省去了不少麻烦,需要的朋友可以参考下 -
Python中字符串的处理技巧分享
2020-09-21 13:18:41给大家分享了Python中字符串的处理技巧,包括拆分含有多种分隔符的字符串、判断字符串a是否以字符串b开头或结尾、调整字符串中文本的格式已经将多个小字符串拼接成一个大的字符串等,感兴趣的朋友们可以通过阅读下文...