导航:首页 > 编程语言 > pythonrsplit函数

pythonrsplit函数

发布时间:2023-03-16 04:00:33

python 获取文件后缀名

程序代码如下所示:

importos
dict={}
ford,fd,flinos.walk(r"F:\"):
forfinfl:
sufix=os.path.splitext(f)[1][1:]
ifdict.has_key(sufix):
dict[sufix]+=1
else:
dict[sufix]=1

foritemindict.items():
print"%s:%s"%item
  1. 第二行:创建一个字典用来保存文件后缀名及个数;

  2. 第三行:循环的目的主要就是os.path.splitext()分离后缀名和文件名;

  3. 最后打印输出。

⑵ python中的strip和split结合起来怎么用

python strip() 函数和 split() 函数的详解及实例
一直以来都分不清楚strip和split的功能,实际上strip是删除的意思;而split则是分割的意思。因此也表示了这两个功能是完全不一样的,strip可以删除字符串的某些字符,而split则是根据规定的字符将字符串进行分割。下面就详细说一下这两个功能,
1 Python strip()函数 介绍
函数原型
声明:s为字符串,rm为要删除的字符序列
s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符
s.lstrip(rm) 删除s字符串中开头处,位于 rm删除序列的字符
s.rstrip(rm) 删除s字符串中结尾处,位于 rm删除序列的字符
注意:
(1)当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')
(2)这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉。
例如,

>>> a = ' 123'
>>> a
' 123'
>>> a.strip()
'123'

(2)这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉。

例如,

>>> a = '123abc'
>>> a.strip('21')
'3abc'
>>> a.strip('12')
'3abc'

结果是一样的。

2 python split()函数 介绍

说明:

Python中没有字符类型的说法,只有字符串,这里所说的字符就是只包含一个字符的字符串!!!

这里这样写的原因只是为了方便理解,仅此而已。
(1)按某一个字符分割,如‘.'
>>> str = ('www.google.com')
>>> print str
www.google.com
>>> str_split = str.split('.')
>>> print str_split
['www', 'google', 'com']

(2)按某一个字符分割,且分割n次。如按‘.'分割1次
>>> str_split = str.split('.',1)
>>> print str_split
['www', 'google.com']

(3)split()函数后面还可以加正则表达式,例如:
>>> str_split = str.split('.')[0]
>>> print str_split
www

split分隔后是一个列表,[0]表示取其第一个元素;

>>> str_split = str.split('.')[::-1]
>>> print str_split
['com', 'google', 'www']
>>> str_split = str.split('.')[::]
>>> print str_split
['www', 'google', 'com']

按反序列排列,[::]安正序排列
>>> str = str + '.com.cn'
>>> str
'www.google.com.com.cn'
>>> str_split = str.split('.')[::-1]
>>> print str_split
['cn', 'com', 'com', 'google', 'www']
>>> str_split = str.split('.')[:-1]
>>> print str_split
['www', 'google', 'com', 'com']

从首个元素开始到次末尾,最后一个元素删除掉。
split()函数典型应用之一,ip数字互换:
# ip ==> 数字
>>> ip2num = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split('.')[::-1])])
>>> ip2num('192.168.0.1')
3232235521

# 数字 ==> ip # 数字范围[0, 255^4]
>>> num2ip = lambda x: '.'.join([str(x/(256**i)%256) for i in range(3,-1,-1)])
>>> num2ip(3232235521)
'192.168.0.1'

最后,python怎样将一个整数与IP地址相互转换?
>>> import socket
>>> import struct
>>> int_ip = 123456789
>>> socket.inet_ntoa(struct.pack(‘I',socket.htonl(int_ip)))#整数转换为ip地址
‘7.91.205.21'
>>> str(socket.ntohl(struct.unpack(“I”,socket.inet_aton(“255.255.255.255″))[0]))#ip地址转换为整数
‘4294967295'

⑶ python 字符串分割split()函数中中英文逗号分割

在我这里没有问题啊,能够正确地分割。注意最好不要用内置函数名称作为变量名。

⑷ Python里使用split("\r\n")分割html字符串,报错TypeError:a bytes-like object is required,not 'str'

read()后加.decode('utf8')

⑸ Python字符串split及rsplit方法原理详解

1.描述

split()方法通过指定分隔符对字符串进行切片,如果参数num有指定值,则分隔num+1个子字符串,默认分隔符为所有空字符,包括空格、换行(\n)、制表符(\t)等

rstrip()方法通过

2.语法

str.split([sep=None][,count=S.count(sep)])

str.rsplit([sep=None][,count=S.count(sep)])

3.参数

sep -- 可选参数,指定的分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等

count -- 可选参数,分割次数,默认为分隔符在字符串中出现的总次数

4.返回值

返回分割后的字符串行表,可以用新字符串来接收

5.实例

str1 = "Hao123 hao456 hAo789"

new_str = str1.split()

new_str2 = str1.split(' ', 1)

new_str3 = str1.rsplit(' ', 1)

print(new_str)

print(new_str2)

print(new_str3)

#输出结果如下:

['Hao123', 'hao456', 'hAo789']

['Hao123', 'hao456 hAo789']

['Hao123 hao456', 'hAo789']

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

⑹ python中split的用法问题

1、首先双击打开pycharm编辑工具之后,新建python文件split.py,如下图所示。

⑺ Python常用的正则表达式处理函数详解

正则表达式是一个特殊的字符序列,用于简洁表达一组字符串特征,检查一个字符串是否与某种模式匹配,使用起来十分方便。

在Python中,我们通过调用re库来使用re模块:

import re

下面介绍Python常用的正则表达式处理函数。

re.match函数

re.match 函数从字符串的起始位置匹配正则表达式,返回match对象,如果不是起始位置匹配成功的话,match()就返回None。

re.match(pattern, string, flags=0)

pattern:匹配的正则表达式。

string:待匹配的字符串。

flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。具体参数为:

re.I:忽略大小写。

re.L:表示特殊字符集 w, W, , B, s, S 依赖于当前环境。

re.M:多行模式。

re.S:即 . ,并且包括换行符在内的任意字符(. 不包括换行符)。

re.U:表示特殊字符集 w, W, , B, d, D, s, S 依赖于 Unicode 字符属性数据库。

re.X:为了增加可读性,忽略空格和 # 后面的注释。

import re #从起始位置匹配 r1=re.match('abc','abcdefghi') print(r1) #不从起始位置匹配 r2=re.match('def','abcdefghi') print(r2)

运行结果:

其中,span表示匹配成功的整个子串的索引。

使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。

group(num):匹配的整个表达式的字符串,group() 可以一次输入多个组号,这时它将返回一个包含那些组所对应值的元组。

groups():返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。

import re s='This is a demo' r1=re.match(r'(.*) is (.*)',s) r2=re.match(r'(.*) is (.*?)',s) print(r1.group()) print(r1.group(1)) print(r1.group(2)) print(r1.groups()) print() print(r2.group()) print(r2.group(1)) print(r2.group(2)) print(r2.groups())

运行结果:

上述代码中的(.*)和(.*?)表示正则表达式的贪婪匹配与非贪婪匹配。

re.search函数

re.search函数扫描整个字符串并返回第一个成功的匹配,如果匹配成功则返回match对象,否则返回None。

re.search(pattern, string, flags=0)

pattern:匹配的正则表达式。

string:待匹配的字符串。

flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

import re #从起始位置匹配 r1=re.search('abc','abcdefghi') print(r1) #不从起始位置匹配 r2=re.search('def','abcdefghi') print(r2)

运行结果:

使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。

group(num=0):匹配的整个表达式的字符串,group() 可以一次输入多个组号,这时它将返回一个包含那些组所对应值的元组。

groups():返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。

import re s='This is a demo' r1=re.search(r'(.*) is (.*)',s) r2=re.search(r'(.*) is (.*?)',s) print(r1.group()) print(r1.group(1)) print(r1.group(2)) print(r1.groups()) print() print(r2.group()) print(r2.group(1)) print(r2.group(2)) print(r2.groups())

运行结果:


从上面不难发现re.match与re.search的区别:re.match只匹配字符串的起始位置,只要起始位置不符合正则表达式就匹配失败,而re.search是匹配整个字符串,直到找到一个匹配为止。

re.compile 函数

compile 函数用于编译正则表达式,生成一个正则表达式对象,供 match() 和 search() 这两个函数使用。

re.compile(pattern[, flags])

pattern:一个字符串形式的正则表达式。

flags:可选,表示匹配模式,比如忽略大小写,多行模式等。

import re #匹配数字 r=re.compile(r'd+')  r1=r.match('This is a demo') r2=r.match('This is 111 and That is 222',0,27) r3=r.match('This is 111 and That is 222',8,27)   print(r1) print(r2) print(r3)

运行结果:

findall函数

搜索字符串,以列表形式返回正则表达式匹配的所有子串,如果没有找到匹配的,则返回空列表。

需要注意的是,match 和 search 是匹配一次,而findall 匹配所有。

findall(string[, pos[, endpos]])

string:待匹配的字符串。

pos:可选参数,指定字符串的起始位置,默认为0。

endpos:可选参数,指定字符串的结束位置,默认为字符串的长度。

import re #匹配数字 r=re.compile(r'd+')  r1=r.findall('This is a demo') r2=r.findall('This is 111 and That is 222',0,11) r3=r.findall('This is 111 and That is 222',0,27)   print(r1) print(r2) print(r3)

运行结果:

re.finditer函数

和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。

re.finditer(pattern, string, flags=0)

pattern:匹配的正则表达式。

string:待匹配的字符串。

flags:标志位,用于控制正则表达式的匹配方式,如是否区分大小写,多行匹配等。

import re  r=re.finditer(r'd+','This is 111 and That is 222') for i in r:   print (i.group())

运行结果:

re.split函数

将一个字符串按照正则表达式匹配的子串进行分割后,以列表形式返回。

re.split(pattern, string[, maxsplit=0, flags=0])

pattern:匹配的正则表达式。

string:待匹配的字符串。

maxsplit:分割次数,maxsplit=1分割一次,默认为0,不限次数。

flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等。

import re  r1=re.split('W+','This is 111 and That is 222')  r2=re.split('W+','This is 111 and That is 222',maxsplit=1)  r3=re.split('d+','This is 111 and That is 222')  r4=re.split('d+','This is 111 and That is 222',maxsplit=1)  print(r1) print(r2) print(r3) print(r4)

运行结果:

re.sub函数

re.sub函数用于替换字符串中的匹配项。

re.sub(pattern, repl, string, count=0, flags=0)

pattern:正则中的模式字符串。

repl:替换的字符串,也可为一个函数。

string:要被查找替换的原始字符串。

count:模式匹配后替换的最大次数,默认0表示替换所有的匹配。

import re  r='This is 111 and That is 222' # 删除字符串中的数字 r1=re.sub(r'd+','',r) print(r1) # 删除非数字的字符串  r2=re.sub(r'D','',r) print(r2)

运行结果:

到此这篇关于Python常用的正则表达式处理函数详解的文章就介绍到这了,希望大家以后多多支持!

阅读全文

与pythonrsplit函数相关的资料

热点内容
windows程序设计核心编程 浏览:444
任我充app怎么开发票 浏览:330
人工智能与编程语言 浏览:406
linux网络编程服务器 浏览:800
海尔32cw空调压缩机电容多大 浏览:747
分区加密了该怎么办 浏览:103
索尼延时拍摄app怎么导入 浏览:226
冰箱冷冻坏了压缩机一直响 浏览:807
windows服务器如何组建raid0 浏览:180
橡胶压缩空气管 浏览:556
如果出现编译错误如何解决 浏览:924
程序员饰品 浏览:430
什么叫网站服务器站点 浏览:686
java转义字符双引号 浏览:779
网上考场的app怎么看真假 浏览:644
四层电梯的plc编程 浏览:899
程序员的职场 浏览:662
圆形平面怎么编程 浏览:67
python开源代码下载 浏览:661
如何连接局域网宽带连接服务器地址 浏览:171