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模块中对于时间可以分成三种形式:
  1. 时间戳: 通常的叫法,时间戳表示的是格林尼治时间是从1970年1月1日00:00:00开始按秒计算的偏移量。这个是实时变化的。我们运行“type(time.time())”,返回的是float类型
  2. 格式化字符串时间: 格式化的时间字符串(Format String): ‘1999-12-06’
  3. 结构化时间:元组(struct_time) struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)
  4. 时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的

    时间模块我们就是学会如何获取当前的时间,以及三种时间之间的转化就行了。

#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脚本工作的目录路径  **
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd **
os.curdir 返回当前目录: ('.') **
os.pardir 获取当前目录的父目录字符串名:('..') **
25、文件夹相关:
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、作业题的更多相关文章

  1. python笔记-1(import导入、time/datetime/random/os/sys模块)

    python笔记-6(import导入.time/datetime/random/os/sys模块)   一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其 ...

  2. python笔记-6(import导入、time/datetime/random/os/sys模块)

    一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其它内容待日后有深入理解了再来细说 1.import可以导入的两种不同的内容 1.1 *.py文件结尾的文件 ...

  3. 常用模块之 time,datetime,random,os,sys

    time与datetime模块 先认识几个python中关于时间的名词: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行“ty ...

  4. time,datetime,random,os,sys,hashlib,logging,configparser,re模块

    #-----time模块----- print(help(time)) #打印time帮助文档 print(time.time()) #打印时间戳 1569824501.6265268 time.sl ...

  5. CSIC_716_20191116【常用模块的用法 time ,datetime, random, os, sys, hashlib】

    import time import datetime import os import sys import random import hashlib time模块 时间戳(Timestamp) ...

  6. python之常见模块(time,datetime,random,os,sys,json,pickle)

    目录 time 为什么要有time模块,time模块有什么用?(自己总结) 1. 记录某一项操作的时间 2. 让某一块代码逻辑延迟执行 时间的形式 时间戳形式 格式化时间 结构化时间 时间转化 总结: ...

  7. Python常用模块(time, datetime, random, os, sys, hashlib)

    time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp) :         通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运 ...

  8. day19:常用模块(collections,time,random,os,sys)

    1,正则复习,re.S,这个在用的最多,re.M多行模式,这个主要改变^和$的行为,每一行都是新串开头,每个回车都是结尾.re.L 在Windows和linux里面对一些特殊字符有不一样的识别,re. ...

  9. python 常用模块之random,os,sys 模块

    python 常用模块random,os,sys 模块 python全栈开发OS模块,Random模块,sys模块 OS模块 os模块是与操作系统交互的一个接口,常见的函数以及用法见一下代码: #OS ...

  10. 模块random+os+sys+json+subprocess

    模块random+os+sys+json+subprocess 1. random 模块   (产生一个随机值) import random 1 # 随机小数 2 print(random.rando ...

随机推荐

  1. 【BZOJ4556】[TJOI2016&HEOI2016] 字符串(后缀自动机+线段树合并+二分)

    点此看题面 大致题意: 给你一个字符串\(s\),每次问你一个子串\(s[a..b]\)的所有子串和\(s[c..d]\)的最长公共前缀. 二分 首先我们可以发现一个简单性质,即要求最长公共前缀,则我 ...

  2. jquery ajax 重写

    (function($){ //备份jquery的ajax方法 var _ajax=$.ajax; //重写jquery的ajax方法 $.ajax=function(opt){ //备份opt中er ...

  3. vue与Element实际应用参考

    https://www.cnblogs.com/dmcl/p/6722315.html https://www.cnblogs.com/hbb0b0/p/8399996.html https://ww ...

  4. axios 源码解析(下) 拦截器的详解

    axios的除了初始化配置外,其它有用的应该就是拦截器了,拦截器分为请求拦截器和响应拦截器两种: 请求拦截器    ;在请求发送前进行一些操作,例如在每个请求体里加上token,统一做了处理如果以后要 ...

  5. Practical Go: Real world advice for writing maintainable Go programs

    转自:https://dave.cheney.net/practical-go/presentations/qcon-china.html?from=timeline   1. Guiding pri ...

  6. 面试官:说说Mysql数据库分库分表,并且会有哪些问题?

    之前一篇文章已经谈到了数据库集群之主从集群也就是读写分离,也提到了读写分离其实只是分担了访问的压力,但是存储的压力没有解决. 存储的压力说白了就是随着系统的演化,需求的增加,可能表的数量会逐渐增多,比 ...

  7. Springboot2 Metrics之actuator集成influxdb, Grafana提供监控和报警

    到目前为止,各种日志收集,统计监控开源组件数不胜数,即便如此还是会有很多人只是tail -f查看一下日志文件.随着容器化技术的成熟,日志和metrics度量统计已经不能仅仅靠tail -f来查看了,你 ...

  8. 记一次内存无法回收导致频繁fullgc机器假死的思路

    确定挂机 络绎不绝的来不同类型的bug 当bug滚滚而来时,不要怀疑,你的发布的应用基本是不可用状态了.观察哨兵监控数据,特别是内存打到80%基本就挂机了,或者监控数据缺失也基本是挂机了.此时应当马上 ...

  9. 【转载】百度百科:FusionCube超融合

    [转载]百度百科:FusionCube超融合 华为FusionCube融合基础设施一体机(Huawei FusionCube Converged Infrastructure)是华为公司IT产品线云计 ...

  10. FilterRegistrationBean注册过滤器探究

    官方定义: A ServletContextInitializer to register Filters in a Servlet 3.0+ container. Similar to the re ...