模块
模块是什么?
我们说一个函数就是一个功能,那么把一些常用的函数放在一个py文件中,这个文件就称之为模块,模块,就是一些列常用功能的集合体。
为什么要使用模块?
开发效率高,减少重复代码
拿来主义
人们常说的脚本是什么?
脚本就是一个python文件
模块的分类
1.内置模块
2.第三方模块
3.自定义模块
import
第一次导入模块执行三件事
1.创建一个以模块名命名的名称空间。
2.执行这个名称空间(即导入的模块)里面的代码。
3.通过模块名来使用模块中的功能
导入多个模块
import os,sys,json # 这样写可以但是不推荐 推荐写法 import os import sys import json 多行导入:易于阅读 易于编辑 易于搜索 易于维护。
from ... import ...
import 和from 的对比:
import 全部导入
from 指定功能导入
from可以一行导入多个功能
from json import dumps,loads,load,dump
导入顺序
模块的查找顺序
内存中已经加载的模块->内置模块->sys.path路径中包含的模块
time模块
时间分类: 1.时间戳 --- 用于计算的 2.结构化时间 --- 给程序员查看使用 (命名元组) 3.字符串时间 --- 给用户查看的 t = time.time() 当前时间的时间戳 print(time.localtime(t)) # 将时间戳转成结构化时间 print(time.localtime() # 将时间戳转成结构化时间,不写默认是当前时间戳 print(time.mktime(t)) # 将结构化时间转成时间戳 t = time.localtime() print(time.strftime("%y-%m-%d %H:%m:%S",t)) #将结构化时间转换成字符串时间 str_time = "2019-9-1 12:23:06" print(time.strptime(str_time,"%Y-%m-%d %H:%M:%S")) # 将字符串时间转换成结构化时间 print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())) str_time = "2019-9-1 12:23:06" print(time.mktime(time.strptime(str_time,"%Y-%m-%d %H:%M:%S"))) time模块还有个常用的功能休眠 time.sleep(5) 5就是5秒,秒为单位
如果想将字符串时间转化为时间戳,或者时间戳变成字符串时间,必须经过结构化时间转换过去。
datetime模块
获取当前日期和时间
from datetime import datetime print(datetime.now()) ''' 结果:2019-12-04 21:07:48.734886 '''
获取指定日期和时间
from datetime import datetime dt = datetime(2018,5,20,13,14) print(dt) ''' 结果:2018-05-20 13:14:00 '''
str与datetime的转换
很多时候,用户输入的日期和时间是字符串,要处理日期和时间,首先必须把str转换为datetime。转换方法是通过datetime.strptime()
实现,需要一个日期和时间的格式化字符串:
from datetime import datetime t = datetime.strptime('2018-4-1 00:00','%Y-%m-%d %H:%M') print(t) ''' 结果: 2018-04-01 00:00:00 ''' # 如果已经有了datetime对象,要把它格式化为字符串显示给用户,就需要转换为str,转换方法是通过`strftime()`实现的,同样# 需要一个日期和时间的格式化字符串: ``` from datetime import datetime now = datetime.now() print(now.strftime('%a, %b %d %H:%M')) Mon, May 05 16:28 ```
datetime加减
对日期和时间进行加减实际上就是把datetime往后或往前计算,得到新的datetime。加减可以直接用+
和-
运算符,不过需要导入timedelta
这个类:
from datetime import datetime,timedelta print(datetime.now() - timedelta(days=123)) print(datetime.now() + timedelta(days=500)) 结果:2019-09-21 06:51:41.265362 2021-06-05 06:51:41.265362
指定datetime时间
current_time = datetime.datetime.now() print(current_time.replace(year=1977)) # 直接调整到1977年 print(current_time.replace(month=1)) # 直接调整到1月份 print(current_time.replace(year=1989,month=4,day=25)) # 1989-04-25 18:49:05.898601
OS模块
os -- 与操作系统做交互的 import os 1.文件: os.rename("旧名字","新名字") # 重命名 *** os.remove("要删除的文件名") # 删除文件 *** 2.文件夹: os.makedirs("a/b/c/d/e/f") # 递归创建文件夹 *** os.removedirs("a/b/c/d/e/f") # 递归删除文件夹 *** os.mkdir("a") # 创建文件夹 *** os.rmdir("a") # 删除文件夹 *** print(os.listdir("C:\Python26视频")) # 查看当前路径下所有的文件 *** 3.路径: print(os.getcwd()) #获取当前工作路径 *** is 系列 print(os.path.exists("C:\Python_26\day07")) # 判断路劲是否存在 ** print(os.path.isabs("day07")) # 如果path是绝对路径,返回True ** print(os.path.isfile("C:\Python_26\day15\lib.py")) # 如果()中是一个存在的文件,返回True。否则返回False *** print(os.path.isdir("C:\Python_26\day15")) # 如果path是一个存在的目录,则返回True。否则返回False *** 重要: print(os.path.join("C:\\User",'Python_26',"day15","lib.py")) # 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 *** print(os.path.getsize("C:\Python_26\day15\lib.py")) # 获取文件大小 *** 4.其他: print(os.popen("dir").read()) # 给终端发送指令 ** print(os.environ) # 获取环境变量 必会: os.getcwd() os.makedirs() os.removedirs() os.mkdir() os.rmdir() os.rename() os.remove() os.path.abspath() os.path.dirname() os.path.basename() os.path.join() os.path.isfile() os.path.isdir() os.path.getsize()
random 模块
import random print(random.random()) # 0 ~ 1之间的小数 print(random.randint(1,5)) # 1- 5 之间的整数 print(random.randrange(0,10,2)) # 随机偶数 print(random.choice(lst)) # 从一个可迭代对象中获取一个随机数 print(random.choices(lst,k=5)) # 从一个可迭代对象中获取多个随机数,会出现重复元素 print(random.sample(lst,k=2)) # 从一个可迭代对象中获取多个随机数,不会出现重复元素 lst = [1, 2, 3, 3, 4, 5, 6, 7, 8] lst.sort() random.shuffle(lst) # 洗牌 打乱顺序 print(lst) 使用随机数实现一个5位(字母,数字)的验证码: random chr() ord() ascii码表 1.先去查看ascii码表 发现 65 - 90 是大写字母,从65- 90之间随机获取一个数字通过chr方法获取数字对应的内容 发现 97 -122 是小写字母,从97 -122之间随机获取一个数字通过chr方法获取数字对应的内容 2.使用for循环执行5圈,将获取的内容累加起来,最后输出 import random # 1X3Y3ZX def make_code(size=7): res = '' for i in range(size): # 循环一次则得到一个随机字符(字母/数字) s = chr(random.randint(65, 90)) num = str(random.randint(0, 9)) # num = chr(random.randint(97, 122)) res += random.choice([s, num]) return res res=make_code() print(res) import random print(ord("6")) ord()必须是字符串形式,查询数字或者字母(字符串形式)在ascill码表中的位置
来源:https://www.cnblogs.com/zzsy/p/12229682.html