常用模块
python导入模块的顺序
1.从当前目录下找需要导入的python文件
2.从python环境变量中找
(先从当前目录下找,如果当前目录下没有就去python环境变量中找。如果一个模块1.2中都有,执行当前目录。)
sys.path.append(r'F:\jiangmengmeng\day413\0420') #要导入其他目录的模块,先把他加入到环境变量
sys.path.insert(0,r'F:\jiangmengmeng\day413\0420') #用这个加入环境变量中更好,直接加在第一位
导入模块的实质:就是把这个模块从头到尾执行一次
1.当前目录下导入python文件
当前文件夹新建 xiaomeng 这个模块
import xiaomeng #今天下雨了 我是lily
import xiaomeng print(xiaomeng.name) xiaomeng.my() #今天下雨了 我是lily lily 我是lily
当前文件夹新建 xiaomeng 这个模块
import xiaomeng print(xiaomeng.name) xiaomeng.my() #lily 我是lily
也可以用另外一种写法
from xiaomeng import my,name my() print(name)
2 从python环境变量中找
import sys
print(sys.path) 找到python环境变量路径,然后把模块放到这个路径下就可以了,重复当前目录操作方法。
random模块
import random,string print(string.printable) print(random.randint(1,10)) #随机取整数 print(round(random.uniform(1,99),2)) #随机小数 print(random.choice([1,2,3,4])) #只能随机取一个元素 print(random.sample(string.printable,5)) #随机取N个元素,返回的是一个list #洗牌 pickts = ['A','J','K','Q',2,3,4,5,6] random.shuffle(pickts) #只能传 list 因为字符串不能修改 print(pickts)
os模块
import os #linux 操作 r4读 w2写 x1执行 #os.chmod('x.py',2) #给文件/目录加权限,只对linux # print(os.chdir("../0512")) #更改当前目录(回到上一级),返回None # print(os.getcwd()) #取当前工作目录 #F:\jiangmengmeng\day413\0512 #绝对路径 把路劲写齐 #相对路径 相对当前目录 #print(os.makedirs("nhy/python"))#创建文件夹,如果父目录不存在,会自动创建父目录 #print(os.mkdir("zll/huangrong"))#创建文件夹,如果父目录不存在,会报错 #报错 # print(os.remove("a.txt")) #只能删文件 # print(os.rmdir("day4")) #只能删文件夹 #print(os.listdir('e:\\')) #列出一个目录下所有的文件 传的是一个list #os.rename("day3.py","day4.py") #重命名 #print(os.stat("day2.py"))#获取文件信息 #print(os.sep) #当前系统的路劲分隔符 #\ #可以这么写出每个操作系统 day5+os.sep+x.py #print(os.linesep) #获取操作系统的换行符 #print(os.pathsep)# 当前系统的环境变量中每个路劲的分隔符 windows是; linux是: #print(os.environ) #获取当前系统的环境变量 #print(os.name) #当前系统名称 windows是 nt,linux是posix #res = os.system('ipconfig') #执行操作系统的命令,但是获取不到结果 #0 # res = os.popen('ipconfig').read() #popen可以获取到到命令执行的结果 # print(res) #print(__file__) #获取到当前文件的绝对路劲 # print(os.path.abspath('.')) #获取到绝对路径 #print(os.path.abspath(__file__)) #获取相对路径 #print(os.path.split("/usr/hehe/hehe.txt")) #分割路径和文件名('/usr/hehe', 'hehe.txt') #print(os.path.dirname("F:\\jiangmengmeng\day413")) #获取父目录,就是上一级目录F:\jiangmengmeng #print(os.path.basename("F:\\jiangmengmeng\day413\414\json操作.py")) #获取最后一级 #print(os.path.exists("/nhy/hhh")) #判断文件/目录是否存在 不存在返回False,存在返回True #print(os.path.isfile("day2.py")) #判断文件是否存在和是不是一个文件 返回True或Fales #print(os.path.isdir("F:\\jiangmengmeng"))#判断目录是否存在和是不是一个文件 返回True或Fales #size = os.path.getsize("day1.py") #获取文件的大小,不能超过2m #print(size) #print(os.path.join("root",'hehe','a.sql'))#拼接成一个路径 #root\hehe\a.sql # for data in os.walk(r'F:\jiangmengmeng\day413\day6'): # print(data) # ('F:\\jiangmengmeng\\day413\\day6', ['test'], ['cc.py']) # ('F:\\jiangmengmeng\\day413\\day6\\test', ['test1'], ['a.py']) # 文件夹 文件 # ('F:\\jiangmengmeng\\day413\\day6\\test\\test1', [], ['1.txt']) for abs_path,dir,file in os.walk(r'F:\jiangmengmeng\day413\day6'):#获取目录下的内容
#abs_path 当前循环的绝对路劲 #dir 目录下面所有的文件夹 返回是个list[ ] #file 目录下面所有的文件 返回是个list[ ] print(abs_path,dir,file)
sys模块
import sys # print(sys.platform) #判断操作系统 #print(sys.path) #python的环境变量 print(sys.argv) #用来获取命令行里面运行python文件的时候传入的参数,它是一个list,这个list默认就有一个参数,就是当前这个文件名 #['F:/jiangmengmeng/day413/温故知新/day2.py']
下面写个小工具tools.py来说明sys.argv的作用
(1) 用来获取命令行里面运行python文件的时候传入的参数
(2) 它是一个list
(3) 这个list默认就有一个参数,就是当前的这个文件名
import sys command = sys.argv if len(command)>1: cmd1 = command[1] #取第一个元素 if cmd1 == '--help': print('这个是帮助文档' '这个python文件是用来说明sys.argv的作用') elif cmd1 == 'os': print('当前的操作系统是%s'%sys.platform) else: print('输入命令有误') else: print('运行python文件的时候要传入一个参数' 'e.g' 'python xx.py install')
在当前目录下运行命令行,或者在pycharm中打开Terminal
输入python tools.py --help,即打印“这个是帮助文档这个python文件是用来说明sys.argv的作用”
时间模块 time
import time #1 时间戳 从unix元年到现在过了多少秒 #2 格式化好的时间 # print(time.time()) #获取当前的时间戳 # time.sleep(10) #休息10秒钟 # today = time.strftime('%Y-%m-%d %H:%M:%S') #获取到格式化好的时间 # print(today)
1)时间戳转成格式化好的时间
1.时间戳转成时间元祖 time.localtime()
2.再把时间元祖转成格式化的时间
#时间戳不能直接转成格式化好的时间,要先转成时间元祖 print(time.gmtime()) # 时间元祖 默认取的标准时区的时间 print(time.localtime()) #时间元祖 取到当前时区的时间 s = time.localtime(1524815288) #加时间戳进去转换成时间元祖 t = time.strftime('%Y%m%d %H:%M:%S',s)#时间元祖转格式化时间
print(t)
2)格式化好的时间转时间戳 2018-4-27
tp = time.strptime('2018-4-27','%Y-%m-%d') #格式化时间转成时间元祖 print(tp) print(time.mktime(tp)) #时间元祖转换成时间戳
时间戳转格式化好的时间函数
import time
def timestamp_to_fomat(timestamp=None,format='%Y-%m-%d %H:%M:%S'): #timestamp=None 解释 如果传进来是时间戳那就转换成格式化好的时间,如果没传时间戳那就返回当前时间 #默认返回当前格式化好的时间 #传入时间戳的话,把时间戳转换成格式化好的时间 if timestamp: #如果传进来时间戳 time_tuple = time.localtime(timestamp) #转时间元祖 res = time.strftime(format,time_tuple) #时间元祖转格式化时间 else: res = time.strftime(format) #默认取当前时间 return res print(timestamp_to_fomat()) #当前时间 print(timestamp_to_fomat(19733242,'%Y-%m')) #只取年月
格式化时间转成时间戳函数
import time
def strToTimestamp(str=None,format='%Y%m%d%H%M%S'): #20180421165643 if str: #如果传了格式化好的时间 tp = time.strptime(str,format) #转成时间元祖 res = time.mktime(tp) #转成时间戳 else: res = time.time() #默认取当前的时间戳 return int(res) print(strToTimestamp()) #返回当前时间戳 print(strToTimestamp('20180611152843')) # print(strToTimestamp('2018-04-2','%Y-%m-%d'))
datetime
import datetime print(datetime.datetime.today()) #获取当前时间,精确到秒 print(datetime.date.today()) ##获取当前时间,精确到天 res = datetime.date.today()+datetime.timedelta(days=-5) #获取5天前 print(res) res = datetime.date.today()+datetime.timedelta(days=5) #获取5天后 print(res) res = datetime.datetime.today()+datetime.timedelta(minutes=5) #获取5分钟后 print(res) res = datetime.datetime.today()+datetime.timedelta(seconds=50) #获取50秒后 print(res) res = datetime.datetime.today()+datetime.timedelta(weeks=1) #获取1周后 print(res) print(res.strftime('%Y-%m-%d')) #获取格式化好的时间
hashlib md5加密模块
# import hashlib # m = hashlib.md5()# 实例化md5对象,bytes # passwd = 'nhy123' # #passwd.encode() #把字符串转成bytes类型 # m.update(passwd.encode()) #不能直接对字符串加密,要先把字符串转成bytes类型 # print(m.hexdigest()) #md5只能加密,不能解密
hashlib md5加密函数
import hashlib def my_md5(str): new_str = str.encode()#把字符串转成bytes类型 m = hashlib.md5() #实例化md5对象 m.update(new_str) #加密 return m.hexdigest()#获取返回结果 print(my_md5('nhy'))