所用知识点
1.整体代码
import re
with open('C:/Users/Administrator/Desktop/python之禅.txt','r') as fp:
string = fp.read()
# re.split()用于多个分割条件,\s:用于分割空格/换行/制表符,\.:以.作分隔符
print(string)
pattern = '-|\*|\'|!'
string = re.sub(pattern,' ',string)
print(string)
list_words = re.split(r'[\s,\.]', string)
count = 0
for word in list_words:
if word != '':
print(word)
count = count + 1
print(count)
2.with open(file_name,mode) as file_name
file_name
:想要打开或创建的文件名
如果文件与当前代码位于同一目录下,则直接写文件名即可
如果文件与当前代码不在同一目录下,则需要该文件的完整路径。
完整路径的写法有两种:
-open(r’C:\Users\Administrator\Desktop’)
-open(‘C:/Users/Administrator/Desktop’)
mode
:
mode取值 | 含义 |
---|---|
r | 只读 |
rb | 以二进制模式只读 |
r+ | 读写,文件指针在开头 |
rb+ | 以二进制模式读写,文件指针在开头 |
w | 只写 |
wb | 以二进制模式只写 |
w+ | 读写,文件指针在开头 |
wb+ | 以二进制模式读写,文件指针在开头 |
a | 追加模式写入 |
ab | 以二进制模式追加内容 |
a+ | 读写,文件指针在末尾 |
ab+ | 以二进制模式读写,文件指针在末尾 |
3.re.split(pattern,string[,maxsplit=0,flag=0])
pattern
:正则表达式(字符串类型)
string
:待匹配的字符串
maxsplit
:分割次数,默认为0,即不限次数
flag
:用于控制正则表达式的匹配方式,如:是否区分大小写
返回值:列表
单个分割符:
import re
str1 = 'a b c d e f g h \ni,j,k,l,m,n,o,p,q'
#以逗号为分隔符
print(re.split(',',str1))
#输出结果:['a b c d e f g h \ni', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q']
#以任意空白符为分割符
print(re.split('\s',str1))
#输出结果:['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', '', 'i,j,k,l,m,n,o,p,q']
多重分隔符:
#以逗号和任意空白符做多重分割
#方法1
print(re.split('[,\s]',str1))
#输出结果:['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', '', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q']
#方法2
print(re.split(',|\s',str1))
#输出结果:['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', '', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q']
4.re.sub(pattern, repl, string, count=0, flags=0)
pattern
:表示正则中的模式字符串
repl
:替换字符串,如想把原本的字符串替换成空格,这里就写空格
string
:想要进行替换的字符串文本
count
:替换次数,可选参数,默认为0,表示替换所有的匹配
flags
:可选参数,用于控制正则表达式的匹配方式,如:是否区分大小写
详细实例解析:re.sub实例详解