python 文件操作 、正则表达式re模块

目录

 

一、文件处理

OS模块导航文件系统

os.path  常用路径操作

二、正则表达式和re模块

字符串替换

匹配组

三、文件操作


 

 

一、文件处理

OS模块导航文件系统

os.path  常用路径操作

二、正则表达式和re模块

re.match函数:

    函数语法:

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

    参数说明:

    pattern:匹配的正则表达式

    string:要匹配的字符串

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

re.serach函数:扫描整个字符串并返回第一个成功的匹配,参数同match函数

match和search区别

    1.re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None

    2.re.search匹配整个字符串,直到找到第一个匹配

.span() 返回匹配的位置

字符串替换

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

    pattern:正则中的模式字符串

    repl:替换的字符串,也可以是一个函数

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

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

import re
phone = "188-3333-4566 # this is a phone number"

num = re.sub(r'#.*$',"",phone)
print("电话号码是: ",num)

num = re.sub(r'\D',"",phone)
print("电话号码是: ",num)

\D 非数字外的其他字符

匹配组

import re

line = "cats are smarter than dogabc"
matchObj = re.match(r'(.*) are (.*?)$',line)
# .*?非贪婪
if matchObj:
    print("matchObj.group():",matchObj.group())
    print("matchObj.group(1):", matchObj.group(1))
    print("matchObj.group(2):", matchObj.group(2))
else:
    print("no match")

()代表一个匹配组,are 前后各有一个匹配组,划定了要匹配的范围

输出的时候用group() 默认为匹配全部匹配组,可以指定参数选择要用哪个匹配组

三、文件操作

file对象代表对一个文件的连接,而不是文件本身

如果试图打开一个不存在的文件或向其写入数据,python将自动创建该文件

使用完文件后要进行关闭操作,释放内存??

a = open('test.txt','w')
a.write('test')
a.close()

对文件可用的操作模式有

案例:读取文件中的时间

from datetime import datetime

with open('test.txt','w') as f:
    f.write('今天是 ')
    f.write(datetime.now().strftime('%Y-%m-%d'))

with open('test.txt','r') as f:
    s = f.read()
    print('open for read...')
    print(s)

with open('test.txt','rb') as f:
    s = f.read()
    print('open as binary for read...')
    print(s)
    print(s.decode('gbk'))

读取文件

readline

readlines

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_43200143/article/details/113833055