day-8 模块
Posted junyingwang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day-8 模块相关的知识,希望对你有一定的参考价值。
1. 模块介绍:
为什么要有模块
python其实有很多现成的方法,但是这些函数不能全都放在内存里
为用户节省很多不必要的内存消耗
用不到的功能就不用导入到内存里了
模块是什么
一块python代码
一组python代码
一组C语言的代码
一堆写好的 现成可以用的 函数、类
以功能来分类的
模块有哪几类
内置模块 —— 随着python解释器的安装直接可以使用的模块
扩展模块 —— 需要你自己安装一下才能使用的模块 django itchat
自定义模块 —— 用户根据自己的需求完成的一组功能
2.collect模块
2.1 可命名元祖
import collections
Point = collections.namedtuple(‘point‘,[‘x‘,‘y‘])
p = Point(1,2)
print(p)
print(p.x)
print(p.y)
from math import sqrt
sqrt(p.x**2 + p.y**2) # 程序会变得更明确,可读性更高
3.time模块
import time
时间戳时间float —— 给机器看的
结构化时间 —— 中间的过渡
格式化 %s —— 给人看的
转换关系
timestamp = time.time()
print(timestamp)
ts2 = 3000000000
print(time.localtime())
struct_time = time.localtime(ts2)
print(time.strftime(‘%m/%d/%Y %H:%M‘,struct_time))
struct_time = time.strptime(‘2020‘,‘%Y‘)
print(time.mktime(struct_time))
print(time.strptime(‘2020‘,‘%Y‘))
4.random模块
import random
# 0-9 数字
# 65-90 大写字母
# 97-122 小写字母
随机发红包代码示例:
def random_code(num,alpha=True):
import random
code = ‘‘
for i in range(num):
choice = str(random.randint(0,9))
if alpha:
alpha_lower = chr(random.randint(65,90))
alpha_upper = chr(random.randint(97,122))
choice = random.choice([choice,alpha_lower,alpha_upper])
code += choice
return code
print(random_code(4,False))
5.sys模块
和python解释器打交道的
import sys
print(‘3.6‘ in sys.version)
print(sys.platform) # win32
print(sys.path)
你的模块能不能被顺利的导入
取决于这个模块是否在你的sys.path路径中
路径的寻找是依据sys.path列表中的顺序查找的
找到一个符合条件的就停止了
print(sys.modules)
记载了我们已经导入的模块名以及这个模块的内存地址
执行pthon命令的时候: python E:s22login.py alex 123
if len(sys.argv)>1 and sys.argv[1] == ‘alex‘and sys.argv[2] == ‘alex3714‘:
print(‘登陆成功‘)
else:
user = input(‘user:‘) # 阻塞
pwd = input(‘pwd:‘)
if user == ‘alex‘ and pwd == ‘alex3714‘: print(‘登陆成功‘)
6.OS模块
os模块
操作系统打交道的
import os
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd os.curdir 返回当前目录: (‘.‘) os.pardir 获取当前目录的父目录字符串名:(‘..‘) os.makedirs(‘dirname1/dirname2‘) 可生成多层递归目录 os.removedirs(‘dirname1‘) 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 os.mkdir(‘dirname‘) 生成单级目录;相当于shell中mkdir dirname os.rmdir(‘dirname‘) 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname os.listdir(‘dirname‘) 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 os.remove() 删除一个文件 os.rename("oldname","newname") 重命名文件/目录 os.stat(‘path/filename‘) 获取文件/目录信息 os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/" os.linesep 输出当前平台使用的行终止符,win下为" ",Linux下为" " os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为: os.name 输出字符串指示当前使用平台。win->‘nt‘; Linux->‘posix‘ os.system("bash command") 运行shell命令,直接显示 os.popen("bash command).read() 运行shell命令,获取执行结果 os.environ 获取系统环境变量
os.path
os.path.abspath(path) 返回path规范化的绝对路径 os.path.split(path) 将path分割成目录和文件名二元组返回 os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素 os.path.basename(path) 返回path最后的文件名。如何path以/或结尾,那么就会返回空值。 即os.path.split(path)的第二个元素 os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False os.path.isabs(path) 如果path是绝对路径,返回True os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 os.path.getatime(path) 返回path所指向的文件或者目录的最后访问时间 os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间 os.path.getsize(path) 返回path的大小
7.re模块
正则表达式本身也和python没有什么关系,就是匹配字符串内容的一种规则。
在线测试工具 http://tool.chinaz.com/regex/
则 |
待匹配字符 |
匹配 |
说明 |
[0123456789] |
8 |
True |
在一个字符组里枚举合法的所有字符,字符组里的任意一个字符 |
[0123456789] |
a |
False |
由于字符组中没有"a"字符,所以不能匹配 |
[0-9] |
7 |
True |
也可以用-表示范围,[0-9]就和[0123456789]是一个意思 |
[a-z] |
s |
True |
同样的如果要匹配所有的小写字母,直接用[a-z]就可以表示 |
[A-Z] |
B |
True |
[A-Z]就表示所有的大写字母 |
[0-9a-fA-F] |
e |
True |
可以匹配数字,大小写形式的a~f,用来验证十六进制字符 |
字符:
元字符 |
匹配内容 |
. | 匹配除换行符以外的任意字符 |
w | 匹配字母或数字或下划线 |
s | 匹配任意的空白符 |
d | 匹配数字 |
匹配一个换行符 | |
匹配一个制表符 | |
匹配一个单词的结尾 | |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结尾 |
W |
匹配非字母或数字或下划线 |
D |
匹配非数字 |
S |
匹配非空白符 |
a|b |
匹配字符a或字符b |
() |
匹配括号内的表达式,也表示一个组 |
[...] |
匹配字符组中的字符 |
[^...] |
匹配除了字符组中字符的所有字符 |
量词:
量词 |
用法说明 |
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
以上是关于day-8 模块的主要内容,如果未能解决你的问题,请参考以下文章
如何使用模块化代码片段中的LeakCanary检测内存泄漏?
CTS测试CtsWindowManagerDeviceTestCases模块的testShowWhenLockedImeActivityAndShowSoftInput测试fail项解决方法(代码片段