python27期day15:自定义模块、模块导入、模块的路径、模块的查找顺序、time、datetime、random、os、sys、作业题
1、模块的介绍:
py文件就是一个模块
2、模块的分类:内置模块:python标准库 200
第三方模块
自定义模块
3、为什么学习模块?
开发效率高,内置函数和模块
减少重复代码,分文件管理,有助于修改和维护
4、怎么使用模块?
import 导入
5、导入时发生的事情?
#1、将模块存储到当前名称空间中
#2、以模块的名字命名,并开辟空间。
#3、通过模块名来使用模块中的功能
#4、from 模块名 impor 功能
6、查看全局:
print(globals())
7、as 临时起别名aa:
from lib import login,register,a as aa
8、同一个模块写多次导入只执行一次:
9、相对路径导入: import 导入
from lib import login,register,a as aa
10、绝对路径导入:先通过sys模块添加路径:sys.path.append("C:\我的代码\day13")
其他路径有异常时记得添加r转义:sys.path.append(r"C:\Users\zd\Desktop")
11、查看pycharm预置的模块: import sys
print(sys.modules)
12、模块查找顺序: 内存
内置
sys.path
13、定义启动接口: if __name__ == '__main__':
开发自己用、用于测试
login()
14、查看原生态:print(repr(__name__))
15、在当前文件中执行__name__获取的值是'__main__'
在当前文件被当做模块导入时,__name__获取的是当前文件名
16、import和from的对比:import是全部导入
from是指定功能导入
都支持as
from可以一行导入多个功能
import建议一行导入一个模块
12、time时间模块
time模块中对于时间可以分成三种形式:
- 时间戳: 通常的叫法,时间戳表示的是格林尼治时间是从1970年1月1日00:00:00开始按秒计算的偏移量。这个是实时变化的。我们运行“type(time.time())”,返回的是float类型
- 格式化字符串时间: 格式化的时间字符串(Format String): ‘1999-12-06’
- 结构化时间:元组(struct_time) struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)
时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的
时间模块我们就是学会如何获取当前的时间,以及三种时间之间的转化就行了。
#1、time.time打印当前系统时间并转做浮点表达式--时间戳(1970-当前时间经过的秒数、1970Unix诞辰
import time
print(time.time())
#2、time.sleep休眠
print(time.sleep(1))
#3、将时间戳转换成结构化时间用localtime:
import time
print(time.localtime(time.time()))
结果:time.struct_time(tm_year=2019, tm_mon=10, tm_mday=15, tm_hour=21, tm_min=30, tm_sec=7, tm_wday=1, tm_yday=288, tm_isdst=0)
#4、结构化的时间转换成时间戳用mktime:
print(time.mktime(time.localtime()))
结果:1571146525.0
#5、将结构化时间转成字符串时间用strftime:
print("当前时间是",time.strftime("%Y-%m-%d %X",time.localtime()))
结果:当前时间是 2019-10-15 21:32:41
#6、将字符串时间转化成结构化时间用strptime:
print(time.strptime("2016:12:24:17:50:36","%Y:%m:%d:%X"))
结果:time.struct_time(tm_year=2016, tm_mon=12, tm_mday=24, tm_hour=17, tm_min=50, tm_sec=36, tm_wday=5, tm_yday=359, tm_isdst=-1)
#7、
time.asctime(结构化时间) 如果不传参数,直接返回当前时间的格式化串
#8、
time.ctime(时间戳) 如果不传参数,直接返回当前时间的格式化串
9、打印当前时间年月日、时分秒
print(time.strftime("%Y-%m-%d %X",time.localtime()))
结果:2019-10-16 00:19:30
datetime模块:
打印当前时间用datetime.now:
from datetime import datetime
print(datetime.now())
结果:2019-10-16 00:29:04.837219
指定时间用datetime:
from datetime import datetime
print(datetime(2019,1,1))
结果:2019-01-01 00:00:00
时间戳转换成对象:
from datetime import datetime
import time
print(datetime.fromtimestamp(time.time()))
结果:2019-10-16 00:39:35.281226
将对象转换成时间戳:
from datetime import datetime
import time
print(datetime.timestamp(datetime.now()))
结果:1571157698.215962
对象转换成字符串:
print(datetime.strftime(datetime.now(),"%Y-%m-%d %H:%M:%S"))
结果:2019-10-16 00:48:41
字符串转换成对象:
from datetime import datetime
import time
print(datetime.strptime("2019/1/1","%Y/%m/%d")
结果:2019-01-01 00:00:00
时间相减:
from datetime import datetime
import time
print(datetime.now() -datetime(2011,1,1,12,13,14))
结果:3209 days, 12:44:27.577273
指定datetime时间用replace:
import datetime
current_time = datetime.datetime.now()
print(current_time.replace(year=1977)) # 直接调整到1977年
结果:
1977-10-16 19:15:35.278185
print(current_time.replace(month=1)) # 直接调整到1月份
print(current_time.replace(year=1989,month=4,day=25)) # 1989-04-25 18:49:05.898601
random随机模块
import random
#随机小数
random.random() # 大于0且小于1之间的小数
结果:0.06261820639552629
random.uniform(1,3) #大于1小于3的小数
结果:1.6270147180533838
print(random.randint(1,5)) # 大于等于1且小于等于5之间的整数
结果:1
print(random.randrange(1,10,2)) # 大于等于1且小于10之间的奇数
结果:5
print(random.choice([1,'23',[4,5]])) #随机选择一个返回1或者23或者[4,5]]
结果:1
print(random.sample([1,'23',[4,5]],2))#列表元素任意2个组合不会出现重复
结果:['23', [4, 5]]
lst = [1,2,3,4]
random.shuffle(lst) #打乱次序
print(lst)
结果:[3, 2, 4, 1]
os模块
os模块是与操作系统交互的一个接口,它提供的功能多与工作目录,路径,文件等相关。
#1、显示当前目录用getcwd
import os
# print(os.getcwd())
结果:C:\我的代码\day15
#4、新建用makedirs
# os.makedirs("dirname1/dirname2")
# print(os.getcwd())
#5、删除removedirs
# os.removedirs("python_s3/dirname1/dirname2")
#6、清单listdir
print(os.listdir())
#7、获取文件目录信息stat
print(os.stat("sss.py"))
结果:os.stat_result(st_mode=33206, st_ino=6192449487787461, st_dev=4200487114, st_nlink=1, st_uid=0, st_gid=0, st_size=42, st_atime=1571184521, st_mtime=1571184521, st_ctime=1571184521)
#8、s分隔符
print(os.sep)
#9、分割文件 路径字符串
print(os.pathsep)
#10、name是当前文件使用的平台
print(os.name)
#11、system显示当前目录的文件信息
print(os.system("dir"))
#12、将path分割成目录和文件名二元组返回
print(os.path.split(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#13、dirname--返回path的目录。其实就是os.path.split(path)的第一个元素
print(os.path.dirname(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#14、basename--返回path最后的文件名。如何path以/或\结尾,那么就会返回空值,即os.path.split(path)的第二个元素。
print(os.path.basename(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#15、exists判断路径是否存在
print(os.path.exists(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#16、isabs判断绝对路径
print(os.path.isabs(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#17、判断path是否存在一个文件isfile
print(os.path.isfile(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#18、isdir判断path存在一个目录
print(os.path.isdir(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#19、join将路径进行拼接
a = r"C:\users\zd"
b = "python_s3\day22\sss.py"
print(os.path.join(a,b))
结果:C:\users\zd\python_s3\day22\sss.py
#20、getatime最后存取时间
print(os.path.getatime(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#21、最后修改时间
print(os.path.getmtime(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#22、给文件重命名:
import os
os.rename("旧名字","新名字")
23、删除文件:
import os
print(os.remove(r"C:\Users\zd\Desktop\lib.py"))
24、当前执行这个python文件的工作目录相关的工作路径:
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 **
25、文件夹相关:
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') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 **
26、文件相关:
os.remove() 删除一个文件 ***
os.rename("oldname","newname") 重命名文件/目录 ***
os.stat('path/filename') 获取文件/目录信息 **
27、路径相关:
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的大小 ***
28、操作系统相关了解:
os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/" *
os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为: *
os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix' *
# 和执行系统命令相关
os.system("bash command") 运行shell命令,直接显示 **
os.popen("bash command).read() 运行shell命令,获取执行结果 **
os.environ 获取系统环境变量 **
29、os.stat('path/filename') 获取文件/目录信息 的结构说明(了解):
stat 结构:
st_mode: inode 保护模式
st_ino: inode 节点号。
st_dev: inode 驻留的设备。
st_nlink: inode 的链接数。
st_uid: 所有者的用户ID。
st_gid: 所有者的组ID。
st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
st_atime: 上次访问的时间。
st_mtime: 最后一次修改的时间。
st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。
sys模块
import sys
#1、命令行参数列表、
print(sys.argv)
结果:['C:/我的代码/day15/笔记.py']
#2、version获取Python解释器版本信息
print(sys.version)
#3、返回系统平台名称
print(sys.platform)
#5、sys.path--获取模块查找路径:
python27期day15:自定义模块、模块导入、模块的路径、模块的查找顺序、time、datetime、random、os、sys、作业题的更多相关文章
- python笔记-1(import导入、time/datetime/random/os/sys模块)
python笔记-6(import导入.time/datetime/random/os/sys模块) 一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其 ...
- python笔记-6(import导入、time/datetime/random/os/sys模块)
一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其它内容待日后有深入理解了再来细说 1.import可以导入的两种不同的内容 1.1 *.py文件结尾的文件 ...
- 常用模块之 time,datetime,random,os,sys
time与datetime模块 先认识几个python中关于时间的名词: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行“ty ...
- time,datetime,random,os,sys,hashlib,logging,configparser,re模块
#-----time模块----- print(help(time)) #打印time帮助文档 print(time.time()) #打印时间戳 1569824501.6265268 time.sl ...
- CSIC_716_20191116【常用模块的用法 time ,datetime, random, os, sys, hashlib】
import time import datetime import os import sys import random import hashlib time模块 时间戳(Timestamp) ...
- python之常见模块(time,datetime,random,os,sys,json,pickle)
目录 time 为什么要有time模块,time模块有什么用?(自己总结) 1. 记录某一项操作的时间 2. 让某一块代码逻辑延迟执行 时间的形式 时间戳形式 格式化时间 结构化时间 时间转化 总结: ...
- Python常用模块(time, datetime, random, os, sys, hashlib)
time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp) : 通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运 ...
- day19:常用模块(collections,time,random,os,sys)
1,正则复习,re.S,这个在用的最多,re.M多行模式,这个主要改变^和$的行为,每一行都是新串开头,每个回车都是结尾.re.L 在Windows和linux里面对一些特殊字符有不一样的识别,re. ...
- python 常用模块之random,os,sys 模块
python 常用模块random,os,sys 模块 python全栈开发OS模块,Random模块,sys模块 OS模块 os模块是与操作系统交互的一个接口,常见的函数以及用法见一下代码: #OS ...
- 模块random+os+sys+json+subprocess
模块random+os+sys+json+subprocess 1. random 模块 (产生一个随机值) import random 1 # 随机小数 2 print(random.rando ...
随机推荐
- CSP-S 2019图论总结
CSP-S 2019图论总结 一.最短路问题 模板 Floyd算法 void floyd() { memset(map,0x3f,sizeof(map)); for(int i=1;i<=n;i ...
- Ubuntu16.04下安装Cmake-3.8.2并为其配置环境变量
下载安装包 首先我们到官网下载最新的cmake二进制安装包https://cmake.org/files/ 这里,我下载的是比较新的cmake-3.8.2-Linux-x86_64.tar.gz解压安 ...
- 8.Go-Reader,Writer和ioutil
8.1.Reader (1)输入流 流是应用程序和外部资源进行数据交互的纽带 流分为输入流和输出流,输入和输出都是相对于程序,把外部数据传入程序中叫做输入流,反之叫做输出流 在Go语言标准库中io包下 ...
- windows/tomcat 修改java虚拟机JVM以utf-8字符集加载class文件的两种方式
1.情景展示 做了这么长时间的java开发,但是,你知道JVM是以怎样的编码加载.解析class文件的吗? 我们知道,通常情况下,我们会将java文件的字符集修改成utf-8,这样,理所当然地就认 ...
- webrtc笔记(4): kurento 部署
kurento是一个开源的webrtc mcu服务器,按官方的文档,建议在ubtntu上安装,过程如下: 注:建议先切换到root身份,如果不是root身份登录的,下列命令,请自行加上sudo . 另 ...
- VMware workstation 12虚拟机安装CentOS7详细安装教程
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离环境中的完整计算机系统. 虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全 ...
- vs2017离线包下载安装并且不占用C盘空间使用教程
安装vs2017,前提是你的环境是.NET4.6,VS2017在下载好安装程序安装的时候,会根据你选择的功能模块来下载所需要的安装程序,微软.安卓和苹果等平台的SDK.模拟器和第三方扩展功能等会在用户 ...
- Kubernetes configMap(配置文件存储)
Kubernetes configMap(配置文件存储) 官方文档:https://kubernetes.io/docs/tasks/configure-pod-container/configure ...
- Window权限维持(二):计划任务
Windows操作系统提供了一个实用程序(schtasks.exe),使系统管理员能够在特定的日期和时间执行程序或脚本.这种行为可作为一种持久性机制被red team利用.通过计划任务执行持久性不需要 ...
- io机制沉思录:分层与管理
io模型的核心是内核kernel与应用(线程)的关系: 内核与应用的联系:数据状态信号和数据本身: 一.分层模型: 应用层——内核层——设备层 https://www.cnblogs.com/feng ...