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 模块的主要内容,如果未能解决你的问题,请参考以下文章

Python基础day-8[装饰器补充,迭代器(未完)]

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

如何有条件地将 C 代码片段编译到我的 Perl 模块?

CTS测试CtsWindowManagerDeviceTestCases模块的testShowWhenLockedImeActivityAndShowSoftInput测试fail项解决方法(代码片段

如何将字符串数据从活动发送到片段?

argparse 代码片段只打印部分日志