三种方法:
隐藏成员: 模块中以下划线_开头的属性
隐藏成员不会被from 模块 import * 导入
导入模块时会将模块的代码全部执行
as 取别名 from module01 import f as f1
模块变量
__file__ : 模块对应的文件路径名,返回的是一个绝对路径 绝对路径:从盘符开始一层一层 __name__ : 模块自身的名字 如果在当前模块运行,则名字为__main__,否则为模块真名 # 只需要一次模块当作程序运行的代码 if __name__ = '__main__' print("主模块 ")
模块分类
内置模块 : builtins.py
用户自己编写的模块
标准库
第三方模块
第三方模块开源: pip install 模块名 pip install 模块名 -i 源地址 PIP国内源: 1)清化大学 PIP源地址:https://pypi.tuna.tsinghua.edu.cn/simple 2)阿里云 PIP源地址:http://mirrors.aliyun.com/pypi/simple/ 3)豆瓣 PIP源地址:http://pypi.douban.com/simple/ 4)中国科学技术大学 PIP源地址:http://pypi.mirrors.ustc.edu.cn/simple/ 5)华中科技大学 PIP源地址:http://pypi.hustunique.com/
sys = system简写 系统的意思
sys.modules # 获得导入的所有模块,结果是本字典 sys.path # 搜索路径,结果是个列表 sys.platform # 获得操作系统
系统交互模式 = cmd
os.system() # 执行cmd命令,命令用字符串表示 os.getcwd() # 获得工作路径,项目文件的路径 os.mkdir() # 创建文件夹 os.rmdir() # 删除文件夹(只能删除空文件夹) os.remove() # 删除文件 os.rename() # 文件重命名(原名字,新名字) os.chdir() # 切换文件夹 os.listdir() # 获得指定目录下所有文件的目录名 # 重要 os.path.exists(path) # 判断文件或者文件夹是否存在 os.path.isfile(path) # 判断是否为文件 os.path.isdir(path) # 判断是否为文件夹
import time time.time() # 返回一个时间戳 从1970年到现在经过多少秒 time.sleep() # 程序休眠(int) time.strftime("时间格式",时间对象) # %Y 年 year # %m 月 month # %d 日 day # %H 时 hour # %M 分 minute # %S 秒 second 月跟日是小写 其余全部大写 print(time.strftime("%Y %m %d %H:%M:%S", t))
random.random() # 生成一个打郁0,小于1的随机小数 random.randint(start,end) # 生成一个随机范围的整数(包括开头结尾) random.uniform(start,end) # 生成一个随机范围的小数 random.choice(序列) # 从序列中随机提取一个元素 random.choices(序列,k=数量) # 从序列中随机提取多个元素(抽出一个再放回再抽) random.suffle(序列) # 将原序列打乱(必须是可变序列)
json 其实是一种文件的存储格式 json兼容性很强,网络上大部分数据都是以json形式传递让每种语言都可以灵活访问。 跨平台,跨语言 json.loads # json转python json.dupms # python转json json.load # 从文件中json转python json.dupm # python转json到文件中
正则表达式:普通字符和元字符构成的字符串,描述一类字符串规则 re.match("正则","匹配的字符串") # 匹配到了就返回,匹配不到就返回None re.findall("正则","匹配的字符串") # 把能匹配到的都放到列表里面去 re.match("") 元字符: . 除了\n的任意一个字符 \d 数字 \D 非数字 \s 空白 # [\n \t 空格] \S 非空白 \w 数字,字母,下划线 \W 非数字,字母,下划线 字符集:使用中括号来表示,表示一个字符范围,字符集也是一个字符 res = re.match("[abzs]","zbasdf") # <_sre.SRE_Match object; span=(0, 1), match='z'> 字符集中可以使用 - 表示一个范围 [0-9],[a-z],[A-Z][A-Za-Z] 取反: ^ res = re.match("[^a-e]", 'z') 数量规则: * 匹配前一个字符的任意次数(可以是0次) res = re.match("\d*", 'w') # 0次,如果不加*则匹配None # <_sre.SRE_Match object; span=(0, 0), match=''> res = re.match("\w*", 'www111') # 匹配多次,知道匹配不到 # <_sre.SRE_Match object; span=(0, 15), match='www'> + 匹配一个字符的1次及1次以上 ? 匹配前一个字符0次或者1次 {a} # 只能匹配a个 {a,} # 至少匹配a个 {a,b} # 至少匹配a,至多匹配b个 边界处理: 开始:^ 在外面这个叫做边界 结尾:$ 固定数量: res = re.match("^w{3}$", 'wwww') # None
在字符串前面家上r该字符串就为原始字符串,所有的转义字符都无效