包和正则表达式 re模块的使用
包的使用:
import.sys
print(sys.path) #查看执行文件的环境
环境变量是以执行文件为准的,所有被导入的模块或者后续的其他文件引用的sys.path都是参照执行文件的sys.path
针对包内部模块之间的相互导入推荐使用相对导入:
#1、相对导入只能在包内部使用,用相对导入不同目录下的模块是非法的
2、无论是import还是from-import,但凡是在导入时带点的,点的左边必须是包,否则语法错
绝对导入和相对导入:
# 程序中,多个模块之间导入的时候,始终以执行文件所在的路径为基准
绝对导入
# 始终以执行文件所在的环境变量sys.path为基准
相对导入
"""
句点符(.)
.代表的是当前路径
..代表上一层路径
"""
# 相对导入打破了以执行文件所在的路径为基准的原则, 只考虑两个文件之间的位置
'''当文件中出现了相对导入的句式,该文件就不能当成执行文件运行了,只能被当成导入文件使用'''
相对当如不能出执行文件的上一级,这个时候只能使用绝对导入
绝对导入的方法:
- 这样的话文件路径就不会写死
包的使用:
import bbb
"""
导包发生了什么事?
1. 运行执行文件,产生执行文件的名称空间
2. 运行__init__.py文件, 把该文件中产生的名字保存在名称空间中
3. 在执行文件中,产生一个包名字bbb指向包的名称空间
"""
# 导包就是在导__init__.py文件
print(bbb.x)
软件开发目录规范:
bin
# 一般是存放启动文件,当启动文件只有一个的时候,也可以写在项目根目录
db:databases
# 一般存放数据相关的文件
conf: config # 配置
# 一般存放配置文件 里面的变量一般都是全大写 HOST='127.0.0.1'
settings.py
lib:library 库
# 存放一些公共的文件
common.py文件
core/api:核心的
# 一般写项目的核心逻辑
src.py
README
# 一般写一些说明性的信息,介绍项目用的
# https://github.com/
正则表达式:
'''
正则表达式它跟任何一门语言都没有关系,它是一门独立的语言!!!
'''
# 什么是正则表达式?
利用一些特殊符号来筛选出我们想要的数据
'''在python中,如果想使用正则表达式,我们需要借助于re模块!!!'''
括号里面需要转译的字符
字符组:
[0123456789] ====> [0-9] =>>>>>> \d # 匹配0-9的数字
[a-z] # 匹配a-z之间的任何一个字符
[A-Z] # 匹配A-Z之间的任何一个字符
[0-9a-xA-X] # ...
字符:
. # 匹配除换行符以外的任意字符
\w # 匹配字母或数字或下划线
\d # 匹配数字
^ # 匹配字符串的开始
$ # 匹配字符串的结尾
a|b # 匹配字符a或字符b
[^...] # ^如果写在中括号里面,则匹配除括号里面其他任意字符,非的意思
量词:
1. 量词不能单独使用
2. 量词只会影响前面的一个字符 (ab+ 只会影响b)
3. 量词一定配合表达式使用
* # 重复零次或更多次
+ # 重复一次或更多次
? # 重复零次或一次
{n} # 重复n次
{n,}# 重复n次或更多次
{n,m}# 重复n到m次
贪婪匹配:
re模块的使用
无名分组和有名分组:
无名分组:
search
findall,以列表的形式
有名分组:
?P<name> 固定格式