# import 一个文件,实质上就是把这个文件从头到尾执行一遍
# import sys
# print(sys.path)
#import 先查找该路径下有没有这个文件,如果没有再去环境变量里找,自己写的文件名不能与python内置的函数名相同,
#否则不执行系统内置的。
#把一个文件的路径加到环境变量中,
#文件单击右键-copy path
#sys.path.append(r'E:\gw\python\test1\day3.py')
#插入到最前面,提高查找的效率
#sys.path.insert(0,r'E:\gw\python\test1\day3.py')
#导入方式有两种:
# import my_model,json
#引用时用 my_model.name my_model.my_func
# from my_model import name,my_func
# 引用时可以直接拿过来用 print(name) my_func()
# 别名 防止与高函数中的变量重名
# from my_model import name as gw_name,my_func as my_func2
#if __name__=='__main__':
#在a模块中写的测试代码可以加上这一句,当b模块调用a模块时,不会被执行if下的代码。
#内置函数
#zip()
# print(all([1,2,3,4,5])) #判断可迭代的对象里面的值是否都为真
# print(any([0,1,2,3,4])) #判断可迭代的对象里面的值是否有一个为真
# print(max(111,12)) #取最大值
# print(min(1,2,3,4)) #取最小值
# print(round(11.11234,2))#取几位小数,取两位小数,会四舍五入
# print(filter(lambda x:x>5,[12,3,12,2,1,2,35]))
# print(map(lambda x:x>5,[1,2,3,4,5,6]))
# print(bin(10)) #十进制转二进制
# print(hex(111)) #数字转成16进制
# print(oct(111)) #把数字转换成8进制
# print(chr(10)) #打印数字对应的ascii码
# print(ord('b')) #打印字符串对应的ascii码
# print(dir(1)) #打印传入对象的可调用方法
# print(eval('[]')) #执行python代码,只能执行简单的,定义数据类型
# print(exec('def a():pass')) #执行python代码
# print(globals()) #返回程序没所有的变量,返回的是一个字典
# print(locals()) #返回局部变量
# print(all([1,2,3,4,5])) #判断可迭代的对象里面的值是否都为真 返回True
# print(all([1,2,3,4,0]))
# print(all([1,2,3,4,False]))
# a=b=c=False
# if all([a,b,c]):
# print('都为真')
# print(any([0,1,2,3,4])) #判断可迭代的对象里面的值是否有一个为真
# print(any([0,False,'',[]])) #返回:False
# a=1
# print(dir(a)) #打印传入对象的可调用方法
# s='''
# for i in range(10):
# print(i)
# '''
# print(exec(s)) #执行python代码
#
# print(eval('s')) #执行python代码,只能执行简单的,定义数据类型
# result = eval('1+1')
# print(result)
# filter #过滤
# map
#参数,func,list 参数是函数名,不能加()
# print(filter(lambda x:x>5,[12,3,12,2,1,2,35]))
# print(map(lambda x:x>5,[1,2,3,4,5,6]))
# def oushu(number):
# if number%2==0:
# return True
#
# l=range(1,11)
#
# l2=[]
# for i in l:
# if oushu(i):
# l2.append(i)
#
#
#
# result=list(filter(oushu,l)) #只一句代替l2的四行代码
# print(l2)
# print(result)
#filter 会自动循环你传给它的list,然后把list里面的每一个元素,传给指定的函数,如果这个函数结果返回的是Ture,就保留这个元素
# result=list(map(oushu,l))
# print(result)
#map 会自动循环你传给它的list,然后把list里面的每一个元素,传给指定的函数,然后把函数的返回值保存期起来
# result3=list(map(str,range(1,101))) #把1-100转换成字符串
# print(result3)
# def test():
# a=1
# b=2
# print(locals()) #获取当前函数里面的局部变量
# print(globals()) #获取当前文件里面的全部变量
# test()
#zip(),把多个list压缩,
# [
# ['fd','1234','1'],
# ['hzy','456','2'],
# ['ds','789','3']
# ]
# a=['fd','hzy','ds']
# b=['1234','456','789']
# c=['1','2','3']
# for username, passwd,bianhao in zip(a,b,c):
# print(username,passwd,bianhao)
#
# for u in zip(b,a,c):
# print(u)
#匿名函数,:前是入参,:后是返回值
#lambda x:x+1
# a=list(filter(lambda x:str(x),[1,2,3,4]))
# print(a)
#python常用的自带模块
# import os,random,sys,time,string
# print(random.randint(1,10)) #1-10的随机整数,包括10
# print(random.uniform(1,10)) #1-10的随机小数
# print(random.choice(string.ascii_lowercase)) #1-10的随机选择1个元素
# print(random.sample(string.ascii_lowercase,3)) #1-10的随机选择1个元素
# l=[random.choice(string.digits) for i in range(6)]#随机取6个数字作为验证码,数字会有重复
# l2=random.sample(string.digits,6)#随机取6个数字作为验证码,数字不会重复
# print(''.join(l))
# print(''.join(l2))
#print(random.shuffle) #洗牌,打乱顺序
# l=[1,2,3,4,5,6,7,8]
# print('打乱之前:',l)
# random.shuffle(l)
# print('打乱之前后:',l)
# sorted() #排序,对list、字符串都可以排序
# s='3453453467689564'
# result=sorted(s,reverse=True) #默认升序,reverse=True降序
# print(result)
# 学生成绩表排序
# d={
# 'fd':100,
# 'ds':93,
# 'lhy':39,
# 'hzy':53
# }
# print(d.items())
# vs=(sorted(d.values(),reverse=True))
# for v in vs:
# for key,value in d.items():
# if v==value:
# print(key,v)
#
# result=sorted(d.items(),key=lambda x:x[1],reverse=True)
# print(result)
#os模块操作
import os
#print(os.listdir(r'E:\gw\python\test1')) #获取某个目录下的内容
#os.mkdir('python') #创建一个文件夹,已存在的不能再创建,
# os.mkdir(r'E:/gw/python/test1/python1')
#os.makedirs('java/day1') #父目录不存在的时候,可以创建父目录
# os.remove() #删除文件,不能删除文件夹
# os.rmdir() #只能删除空文件夹,如果文件夹内有文件,不能删除
# os.rename('java','python') #重命名文件、文件夹
# os.getcwd() #获取当前所在的目录
# os.chdir(r'E:/gw/python/test1') #进入到某个目录下
#print(os.environ) #获取系统变量的内容
#os.system('ipconfig') #执行操作系统命令,只能执行命令,拿不到结果,如果返回时0,执行成功,返回不是0,执行失败
# os.popen()
# result=os.popen('ipconfig').read()#执行操作系统命令,并且可以拿到结果
# print('result,,',result)
# print(os.path.isfile('a.json'))#判断是不是文件
# print(os.path.isdir('a.json'))#判断是不是文件夹
# print(os.path.exists('a.json'))#判断文件、文件夹是不是存在
# print(os.path.getsize('a.json'))#获取文件大小
#
# print(os.path.getctime('a.json'))#获取创建时间
# print(os.path.getmtime('a.json'))#获取修改时间
# print(os.path.getatime('a.json'))#获取最后一次访问时间
#
# print(os.path.sep) #显示当前系统的路径分割符
#print(os.path.split(r'E:\gw\python\test1'))#分割路径和文件名
# p='e:'+os.path.sep+'movies'+os.path.sep+'欧美大片'
# print(p)
# os.getcwd()
# print(os.path.join('e:','\movies','欧美大片','复仇者联盟.mp4'))
# print(os.path.abspath(r'a.json')) #把相对路径转换成绝对路径,(../表示是上一级目录)
#print(os.path.dirname(r'E:\gw\python\test1')) #取父目录
#获取某一个文件的绝对路径
# base_path=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# print(base_path)
# sql_file=os.path.join(base_path,'sqls','creat_sql')
# print(sql_file)
#查找文件
# for cur_path,dirs,files in os.walk(r'E:\gw\python'):
# #print(cur_path,dirs,files)
# print('当前在%目录下查找'%cur_path)
# for file in files:
# if file.endswith('.mp4') or file.endswith('.avi'):
# print('发现小电影在%s目录下'%cur_path)
# break
#时间戳、格式化好的时间
#时间戳:一串数字,从unix元年开始,经过了多少秒
#格式好的时间:2020-08-29 17:24:38
# import time
# print(time.time())#当前时间戳
# print(int(time.time())) #取整
# print(time.strftime('%y-%m-%d %H:%M:%S'))#当前格式化时间
# seven = int(time.time()) + 60*60*24*7
# print(seven)
#
# str_time='20-09-03 13:23:31'
# time_stamp=1599715411
#时间元组
#时间戳转格式化好的时间
# lt=time.localtime(time_stamp) #当前时区的时间
# bt=time.gmtime(time_stamp) #标准时区的时间
# print(lt)
# print(bt)
# print(time.strftime('%y-%m-%d %H:%M:%S',lt))
#
# 格式化好的时间转成时间戳
# time_tuple=time.strptime(str_time,'%y-%m-%d %H:%M:%S') #格式要与传进来的时间一致
# time_stamp_now=time.mktime(time_tuple)
# print(time_stamp_now)