一、模块
一个python文件就是一个模块,文件名称就是模块名。
1、模块分类:
标准库:python自带的,直接用import导入,例如random,json,os,datetime,string等
第三方模块:别人写好的,要安装才能导入的模块。安装方法:
1)pip install 模块名
2)使用pycharm安装,如图:
3)下载whl或tar.gz安装包进行安装
地址:https://pypi.org/project/redis/
以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之后的结果都是一样的