python基础学习第七天

时间:2022-12-09 19:25:03

模块

7.1 configparser模块

        7.1.1 configparser模块_查看

        7.1.2 configparser模块_修改

7.2 正则表达式

7.2.1元字符 

7.2.2 方法


7.1 configparser模块

# 给配置文件中写入内容

import configparserconf=configparser.ConfigParser()  # 文件操作句柄
conf['DEFAULT']={'one1':'1',
                 'two2':'2'}
conf['DEFAULT']['three3']='3'
with open('conf.tini','w',encoding='utf-8') as confile:
    conf.write(confile)

# 打印结果

[DEFAULT]one1 = 1two2 = 2three3 = 3

7.1.1 configparser模块_查看

# 打印文件的全部内容,以元组的形式

with open('conf.tini','r',encoding='utf-8') as xx:    for i in xx:       print(i.split())

# 打印结果

['[DEFAULT]']['one1', '=', '1']['two2', '=', '2']['three3', '=', '3'][]['[test3]'][]

# 读配置文件中的sections, DEFAULT无法打印出来, 需要其它选项

conf.read('conf.ini')

print(conf.sections())

# 打印结果 ['test2']


# 打印DEFAULT键值对的值

print(conf.defaults())

# 打印结果 OrderedDict([('one1', '1'), ('two2', '2'), ('three3', '3')])# OrderedDict有序的排序


# 判断键是否存在配置文件中

print('test2' in conf)

# 结果: True

print('test3' in conf)

# 结果: False


# 取出配置文件中键值

print(conf['test2']['test'])

# 结果: test1


# 打印某个键

for i in conf['test2']:    print(i)

# 打印结果:  打印这个键的时候 它也会打印出DEFAULT的特殊值 

test test2one1two2three3

7.1.2 修改

# 删除配置文件中的键值

conf=configparser.ConfigParser()# 定义一个操作句柄,没有这个配置操作会出错conf.read('conf.tini')        # 每次操作的时候一定要先打开文件然后再操作conf.remove_section('test2')# 删除键conf.write(open('conf.tini','w'))# 修改删除键的配置文件,此处需要注意的是这里是覆盖原文件

# 只是修改覆盖而不是直接删除

conf.remove_option('test3','ess')     选项 键,值 #   键值    内容conf['test3']['ess']='333'# 新加一个键conf.set('test3','ess','4444')# 删除新加的键

# 注意要修改或删除某个值时,一定要带有 操作句柄以及修改文件的目录 

conf=configparser.ConfigParser()conf.write(open('conf.tini','w'))


7.2 正则表达式

re(正则表达式) 是py引入的一个接口


7.2.1元字符 

b 表示一次或零次

.:匹配任意单个字符

[] 中括号                :匹配指定范围内的任意单个字符,取消元字符的特殊功能() 

[^字符] 意味着取反   []中所有的非

[^]中括号加尖括号: 匹配指定范围之外的任意单个字符    逻辑非      

匹配字符次数:(贪婪模式.*尽可能长的匹配)

() 一个组内容

| 或  a|b    a或者b

*:匹配其前面的字符任意次

.* : 任意长度的任意字符            

{m,n}:匹配其前面的字符至少m次,至多N次

       {1}至少一次        {1,3}最多三次

位置锚定:

^  :锚定行首,此字符后面的匹配到的任意内容必须出现在行首

$   :锚定行尾,此字符后面的匹配到的任意内容必须出现在行尾


[]字符集:  [1,2,3]表示只要有其中一个就能获取


\ 反斜杠后边跟元字符去除特殊功能

  反斜杠后边跟普通字符实现特殊功能


\d  匹配任何十进制数;它相当于类 [0-9]。

\D 匹配任何非数字字符;它相当于类 [^0-9]。

\s  匹配任何空白字符;它相当于类 [ \t\n\r\f\v]。

\S 匹配任何非空白字符;它相当于类 [^ \t\n\r\f\v]。

\w 匹配任何字母数字字符;它相当于类 [a-zA-Z0-9_]。

\W 匹配任何非字母数字字符;它相当于类 [^a-zA-Z0-9_]

\b  匹配一个特殊字符边界,比如空格 ,&,#等

?P<id> 固定格式起一个名字

ret=re.search(r'(?P<www>[a-z]{3})\.(?P<domain>\w*)','www.baidu.com')print(ret.group('www'))print(ret.group('domain'))打印结果: www   baidu


匹配出满足条件的第一个结果

xx.search('xx','sdfasdffdsxx').group()    # 不加.group打印出来的是一个对象


7.2.2 方法

#  查找  findall(pattern, string, flags=0)

1、findall(): 所有结果都返回到一个列表中

2、search() : 返回一个对象(object), 对象可以调用group() 方法来获取返回结果

3、match() :  只在字符串开始匹配 跟 ^锚定类式

4、split() : 分割换行

5、sub() :  sub('规则','替换的新内容','替换内容')

re.sub('x..x','ax','xyyx')

打印结果: ax


6、compile() : 将规则预先定义好, 然后再使用


本文出自 “xiong” 博客,请务必保留此出处http://xiong51.blog.51cto.com/5239058/1973849