1.标准模块
python自带,无需安装,直接import就能够用的模块,例如json,datetime,os等
2.第三方模块
别人写好的模块,本身安装完就能用
安装方式:
a.傻瓜安装,pip源,pip install name 若是电脑安装python2和python3,则使用命令python3 -m pip install pymysql
b.手动安装,官网下载whl文件,pip install /Users/chrislee/Downloads/redis-2.10.6-py2.py3-none-any.whl
c.手动安装,官网下载tar文件,压缩找到setup.py 执行 python setup.py install
3.本身写的模块
放到python环境变量里,就可直接import导入
4.如何调用
import module 调用时 module.func.
from module import func 调用时 func.
1、OS模块
import os print(os.getcwd())#获取当前路径 print(os.listdir())#列出当前目录文件和文件夹 os.mkdir(r'D:\code-pratice\xiaona-pratice\test')#建立文件夹,不能递归,父目录不存在则报错 os.makedirs(r'D:\code-pratice\xiaona-pratice\test11\aaa')#建立文件夹,能够递归,目录不存在则会建立 print(os.sep)#输出系统路径分隔符 print(os.linesep)#输出换行符 print(os.pathsep) os.rmdir(r'D:\code-pratice\xiaona-pratice\test')#删除空文件夹 os.remove('code')#删除文件 print(os.path.join('code','aaa.txt'))#链接路径 print(os.path.dirname(r'D:\code-pratice\xiaona-pratice\test'))#提取父目录路径 print(os.path.basename(r'D:\code-pratice\xiaona-pratice\test'))#获取文件名 print(os.path.exists('day4'))#判断文件或者文件夹是否存在 print(os.path.isdir('day5'))#判断是否为文件夹 print(os.path.isfile('day5'))#判断是否为文件 print(os.path.split(r'D:\code-pratice\xiaona-pratice\test'))#把文件和路径分开,返回list print(os.walk(r'D:\code-pratice\xiaona-pratice\test11'))#列出全部的目录,目录下文件夹、文件
print(os.getcwd()) print(os.path.abspath('.'))#取绝对路径 print(os.path.abspath('..'))#取上一级目录 print(os.path.abspath('../day7'))#取上一级目录的day7 print(os.listdir()) os.chdir('../day3')#改变目录 print(os.getcwd()) os.system('ifconfig')#用来执行操做系统命令 os.system('top') res = os.system('ls')#只能执行,获取不到结果 print('res=',res)#返回0 则表明命令执行成功 1 为不成功 res = os.popen('ls').read()#不只能够执行命令 还能够获取到结果 print('res= ',res) 动态的结果 好比top 没法执行popen() res = os.popen('top -n 1').read() print('res= ',res)
小练习1:建立10个文件夹python
for i in range(10): os.mkdir(r'D:\code-pratice\xiaona-pratice\test11\new%s'%i)#建立10个文件夹
小练习2:给末尾为偶数的文件夹中建立a.txt文件,并向文件中写点数据(下面代码test11中没有偶数结尾的文件,若有则如下代码不知足)mysql
import os dirs = os.listdir(r'D:\code-pratice\xiaona-pratice\test11')#列出全部的文件夹和文件 print(dirs) for dir in dirs: if dir[-1].isdigit(): if int(dir[-1])%2==0: with open(r'D:\code-pratice\xiaona-pratice\test11\%s\a.txt'%dir,'a+',encoding='utf-8') as f: f.write("随便写点啥qwertyui")
小练习3:给全部log日志中的文件后缀加上.bak 'D:\code-pratice\\xiaona-pratice\day5\day5\logs' 这个目录下有文件夹,文件夹下有log日志git
import os for cur_dir,dirs,files in os.walk(r'D:\code-pratice\xiaona-pratice\day5\day5\logs'): for f in files: old_name = os.path.join(cur_dir,f)#拼接成绝对路径 new_name = os.path.join(cur_dir,f+'.bak') os.rename(old_name,new_name)#绝对路径修更名字
2、time&datetime模块redis
时间戳 从unix元年开始到如今过的秒数算法
import time print(time.time())#获取当前时间戳 print(int(time.time()))#时间戳取整 print(time.strftime('%Y-%m-%d %H-%M-%S')) print(time.strftime('%Y{y}%m{m}%d{d} %H{h}%M{f}%S{s}').format(y='年',m='月',d='日',h='时',f='分',s='秒')) print(time.gmtime())#把时间戳转为时间元祖,若是不传时间,则取标准时区,与中国时区差8小时 print(time.localtime())#也是将时间戳转为元祖,不传则取当地时区 print(time.asctime())#将元祖转为格式化的时间 print(time.strftime('%Y-%m-%d %H-%M-%S',yuanzu))#按指定格式 print(time.strptime('20180701','%Y%m%d'))#将格式化好的时间转为时间元祖 print(time.mktime(tuple))#将元祖转为时间戳
print(datetime.datetime.now())#当前格式化的时间
print(datetime.datetime.now()+datetime.timedelta(3))#3天后的时间
print(datetime.datetime.now()+datetime.timedelta(-3))#3天前的时间
小练习1:获取3天前的日期sql
import time # 将时间戳转为时间元祖gmtime 或者localtime # 再将时间元祖转为格式化好的时间asctime timestamp= int(time.time())-3*24*3600#获取3天前的时间戳 time_tuple = time.localtime(timestamp)#将时间戳转为时间元祖 print(time.strftime('%Y-%m-%d %H-%M-%S',time_tuple))#时间元祖转为指定格式的时间
小练习2:写一个时间戳转为格式化时间的函数json
import time
def timestampToStr(timestamp=None,format='%Y-%m-%d %H-%M-%S'): if timestamp: time_tuple = time.localtime(timestamp)#时间戳转为时间元祖 return time.strftime(format,time_tuple)#时间元祖转为格式化后的时间 else: return time.strftime(format)#不传时间戳,则取当前时间
小练习3:写一个格式化时间转为时间戳的函数服务器
import time 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)) else: return int(time.time())#不传时间,则取当前时间
3、datetime模块函数
import datetime print(datetime.date.today())#当天的年月日 print(datetime.datetime.today())#当天的年月日时分秒 print(datetime.date.today()+datetime.timedelta(-1))#一天前 print(datetime.datetime.today()+datetime.timedelta(hours=10))#10个小时以后 res = datetime.datetime.today()+datetime.timedelta(hours=10,minutes=20,seconds=30)#10个小时,20分组,30秒以后 print(type(res)) print(res.today())#取到日期 print(res.time())#取到时间 print(res.timestamp())#取到时间戳 print(res.strftime('%Y-%m-%d %H:%M:%S'))#格式化时间
4、nnlog模块ui
第三方模块,须要安装
import nnlog log = nnlog.Logger(file_name='mylog',level='debug',when='D',backCount=5,interval=1) log.debug('默认日志级别是debug') log.info('info级别') log.warning('warning级别') log.error('error级别') log2 = nnlog.Logger(file_name='nn.log') log2.debug('test')
5、hashlib加密模块
import hashlib s = 'djdshshsh' #md5加密算法 m = hashlib.md5(s.encode())#s.encode()字符串转为byte类型 print(m.hexdigest())#获取加密后的结果 #md5加密不可逆,不能解密 #撞库(md5在线解密),存有经常使用的md5加密后的数据,复杂的就没法查到 m1 = hashlib.sha224(s.encode())#也是一种加密的算法,长度不同 print(m1.hexdigest())
6、yagmail模块
import yagmail #帐号 密码 邮件服务器 收件人 抄送人 主题 正文 附件 username = '1020564551@qq.com' passwd = 'xxxxxxxxxxxx'#用的是受权码,通常公司的邮件没有受权码就用本身的邮箱密码 #qq邮箱要加上smtp_ssl=True #链接上邮箱 mail = yagmail.SMTP(user=username,password=passwd,host='smtp.qq.com',smtp_ssl=True) # mail.send(to=['chrislina1115@163.com','caoyu@tom.com'],cc='382593772@qq.com', # subject='python自动发邮件尝试',contents='吃饭了吗,成功了吗', # attachments='/Users/chrislee/Downloads/产品.json') mail.send(to='chrislina1115@163.com', subject='python自动发邮件尝试',contents='吃饭了吗,成功了吗', attachments='/Users/chrislee/Downloads/产品.json')
7、xlwt模块(只能写)
import xlwt book = xlwt.Workbook()#建立excel sheet = book.add_sheet('stu_info')#增长sheet页 sheet.write(0,0,'学生编号')#行,列 sheet.write(0,1,'学生姓名')#行,列 sheet.write(0,2,'成绩')#行,列 sheet.write(1,0,'1')#行,列 sheet.write(1,1,'lina')#行,列 sheet.write(1,2,'98.88')#行,列 book.save('stu.xls')#必定要用xls,不能用xlxs(会打不开)
8、xlrt模块
import xlrd book = xlrd.open_workbook('stu.xls') sheet = book.sheet_by_index(0) print(sheet.cell(0,0).value)#只能行列,获取某个单元格的内容 print(sheet.row_values(0))#获取第一行数据 print(sheet.nrows)#excel总共有多少行 print(sheet.col_values(0))#获取第一列数据 print(sheet.ncols)#总共有多少列
练习:修改excel数据
import xlrd from xlutils import copy book = xlrd.open_workbook('stu.xls')#打开原来的excel new_book = copy.copy(book) sheet = new_book.get_sheet(0)#获取一个sheet页 sheet.write(1,3,'18') sheet.write(1,1,'lina') new_book.save('stu.xls')