一、模块

一个python文件就是一个模块,文件名称就是模块名。

1、模块分类:

标准库:python自带的,直接用import导入,例如random,json,os,datetime,string等

第三方模块:别人写好的,要安装才能导入的模块。安装方法:

1)pip install 模块名

2)使用pycharm安装,如图:

Python中模块列表 python模块名_时间戳

3)下载whl或tar.gz安装包进行安装

地址:https://pypi.org/project/redis/

Python中模块列表 python模块名_python_02

以whl结尾的安装包:pip install  安装包名

以.tar.gz结尾的安装包:

 解压这个压缩包

 进入到这个解压之后的文件夹里面

 在命令行里面运行 python setup.py install 

自定义模块:自己写的python文件。(自己写的文件尽量不要和标准模块重名,调用时会优先调用自己写的文件)

2、导入模块

导入模块的实质:就是把这个python文件从头到尾执行一遍

import ddlog #导入模块
from ddlog import *  #导入该模块中的所有方法,慎用
from ddlog import fun #就是把ddlog打开,然后把他它里面的fun方法拿过来使用
from ddlog import fun as xxx_fun #导入指定的方法,然后起别名
from ddlog import fun1,fun2,fun3 #导入模块下的多个方法

二、sys模块

sys用于解决Python运行时环境的不同问题.

import sys
print(sys.platform)  #判断操作系统

#path获取python的环境变量
#sys.path.append(r'E:\syz\ly-code\day5')
# sys.path.insert(0,r'E:\syz\ly-code\day5')
print(sys.path) #获取python环境变量
print(sys.argv)  #用来获取命令行里面运行python文件的时候传入的参数
print(sys.version)  #获取Python解释程序的版本信息

三、os模块

用于提供系统级别的操作

#os对操作系统的一些操作
import os
print(os.getcwd())#取当前工作目录
os.chmod("x.py",2)#给文件/目录加权限,对Windows的下面不好使(1:执行,2:写,4:读)
print(os.chdir("../day5"))#更改当前目录
print(os.getcwd())

print(os.makedirs("nhy/python"))#递归创建文件夹,父目录不存在时创建父目录
print(os.mkdir("zll/diao"))#创建文件夹,父目录不存在时报错
# makedirs 创建文件夹的时候,如果父目录不存在会自动帮你创建父目录
print(os.removedirs("nhy/python"))#递归删除空目录
print(os.rmdir("test2"))#删除指定的文件夹,文件夹不存在时报错
os.remove("test2")#只能删除文件
os.rmdir('test2') #只能删文件夹

print(os.listdir('e:\\'))#列出一个目录下的所有文件
os.rename("test","test1")#重命名
print(os.stat("x.py"))#获取文件信息
print(os.sep)#当前操作系统的路径分隔符

print(os.linesep)#当前操作系统的换行符   \n  \r\n
print(os.pathsep)#当前系统的环境变量中每个路径的分隔符,linux是:,windows是;
print(os.environ)#当前系统的环境变量
print(os.name)#当前系统名称  Windows系统都是nt linux都是posix
res = os.system('ipconfig')  #执行操作系统命令的,但是获取不到结果
res = os.popen('ipconfig').read()  #可以获取到命令执行的结果

 四、random模块

import random,string 
random.random() # 随机浮点数,默认取0-1,不能指定范围
random.uniform(1,9) # 随机取浮点数,可以指定范围
random.randint(1,3) # 随机整数,包含1和3
random.randrange(0,101,5) # 随机生成一个整数,参数1为开始数字,参数2为结束数字,参数3为随机数字的倍数
random.choice('dsx') # 随机取一个元素,choice的参数可以是list、字符串、元组等
random.sample('dsx',2) # 随机从序列中取几个元素,参数可以是list、字符串、元组等
x = [1,2,3,4,6,7]
random.shuffle(x)#洗牌,打乱顺序,会改变原list的值
print(x)
print(string.ascii_letters+string.digits)#所有的数字和字母

五、time、datetime模块

time和datetime模块主要用于操作时间

时间有三种表示方式,一种是时间戳(通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量)、一种是格式化时间、一种是时间元组

import datetime,time        
print(time.timezone)#和标准时间相差的时间,单位是s
print(time.sleep(1))#休息几s
print(time.time())#获取当前时间戳
print(time.gmtime())#把时间戳转换成时间元组,如果不传的话,默认取标准时区的时间戳
print(time.localtime())#把时间戳转换成时间元组,如果不传的话,默认取当前时区的时间戳
print(time.mktime(time.localtime()))#把时间元组转换成时间戳
print(time.strftime('%Y-%m-%d %H:%M:%S'))#将时间元组转换成格式化输出的字符串
print(time.strftime('%Y%m%d%H%M%S',time.localtime(1530436245 - 259200)))
print(time.strptime("20160204 191919","%Y%m%d %H%M%S"))#将格式化的时间转换成时间元组

print(time.struct_time)#时间元组
print(time.asctime())#时间元转换成格式化时间
print(time.ctime())#时间戳转换成格式化时间
import datetime
print(datetime.date.today()) #当天的日期,只有日期
print(datetime.datetime.today())  #当天的时间,有日期有时间
print(datetime.datetime.now())#当前时间格式化输出
print(datetime.date.today() + datetime.timedelta(days=10))#10天后的时间
print(datetime.datetime.now()+datetime.timedelta(3))#3天后的时间
print(datetime.datetime.now()+datetime.timedelta(-3))#3天前的时间

res = datetime.datetime.today()  + datetime.timedelta(hours=-10,minutes=-20)  #有日期有时间,取10小时前、20分钟前的时间
print(res.time()) #只取到时间
print(res.date())#只取到日期
print(res.timestamp()) #时间戳
print(res.strftime('%Y-%m %H:%M:%S'))#取到格式化好的时间
#1、时间戳转格式化好的时间
    # 1、首先要把时间戳转成时间元组
    # 2、再把时间元组转成格式化好的时间
def timestampToStr(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
    if timestamp:
        time_tuple = time.localtime(timestamp)  # 转成时间元组
        return time.strftime(format,time_tuple) #把时间元组,转成格式化好的时间
    return time.strftime(format)

#2、格式化好的时间,转时间戳,
    #1、首先要把格式化好的时间 转成时间元组
    #2、再把时间元组转成时间戳
def strToTimestamp(format_time=None,format='%Y%m%d%H%M%S'):
    if format_time:
        time_tuple = time.strptime(format_time, format)#把格式化好的时间,转成时间元组
        return int(time.mktime(time_tuple))
    return int(time.time())

六、hashlib模块

hashlib模块,主要用于加密相关的操作,在python3的版本里,代替了md5和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法。

import hashlib
s='123nhy456_++dfsdfsd'
# s.encode() 转化为bytes类型
m = hashlib.md5(s.encode()) #必须得传一个bytes类型的
print(m.hexdigest()) #获取到加密后的结果,16进制格式
print(m.digest()) #2进制格式

def myMd5(s):
    s = str(s)
    m = hashlib.md5(s.encode()) #必须得传一个bytes类型的
    return m.hexdigest()
#md5不可逆
#所有一样的字符串,md5之后的结果都是一样的