常用模块

0、少用全局变量:1、不安全,2、会一直占着内存不放

1、函数有多个返回值的时候,会把返回值放到元组

def hello(a,b,c,d):
return a, b, c, d
print(hello('as','sas','78','8ij')) 运行结果:('as', 'sas', '78', '8ij')

2、列表推导式

 num=[1,2,3,4,5,6] #int类型

new=[]

for i in num:#循环num 取每个值,放到新的list中

    o=str(i)#int转换字符串
new.append(o)
print(new)

列表推导写法
num=[1,2,3,4,5,6] #int类型
new=[str(a)for a in num]
print(new)

3、一个函数尽量实现一个功能 

模块time

4、时间的表现形式:1)格式化好的时间2)时间戳 :从unix元年到现在累计的秒数

获取当前时间戳

import time 

print(time.time())  时间戳,小数点位数

print(int(time.time()))  时间戳 取整数

 

import time

new=time.strftime('%Y%m%d%H%M%S') 取格式化的当前时间

print(new)

 

5、print(time.gmtime(

1516434455

))默认为空,取值标准时区的时间元组,与当前时间差8个小时,  当格式化时间和时间戳相互转换时,需要先转换成时间元组

如果传入了一个时间戳 那么就把时间戳转换成时间元组

print(time.timezone)和标准时区相差几个小时

 

6、时间戳转格式化时间

print(time.localtime(时间戳)) 取值当前时间的时间元组 ,默认为空,如果传入时间戳,则取时间戳的时间元组

import time

def s(sjc,gs='%Y%m%d%H%M%S')

a=time.localtime(sjc)   先转换成时间戳对应的时间元组

res=time.strftime(gs,a)  再去把时间元组 转换成格式化时间

return res

a=s(12121212)

print(a)

7、格式化时间转换时间戳

import time

print(time.strptime('20180119','%Y%m%d'))  把格式化时间转换成时间元组

运行结果:

time.struct_time(tm_year=2018, tm_mon=1, tm_mday=19, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=19, tm_isdst=-1)

函数化:

def s(gshsj,gs):

t=time.strptime('20180119','%Y%m%d') 把格式好的时间转换成时间元组

res=time.mktime(t)      把时间元组转换成时间戳

return res

a=s('20180119')

print(a)

 8、如何获取到一天前的时间->当前时间的时间戳+秒数

模块datetime

import datetime

print(datetime.datetime.today()) 获取今天时间 到秒  2018-01-26 21:12:12  121212

print(datetime.datetime.now())        获取当前时间,同上         

print(datetime.datetime.today().strftime('%Y')) 获取当前时间,可判断显示年月日时分秒某项  

print(datetime.datetime.today()+datetime.timedelta(1))   获取当前时间+1或者-1天的时间  ,显示到时分秒毫米

print(datetime.date.today())  获取今天的时间,显示年月日  2018-01-23

模块random

9、

res=random.uniform(1,9)取1-9之间的随机小数

print(round(res,2)) 取两位小数,如果最后一位是0则不显示

print(random.random()) 取0-1之间的随机小数 不能指定范围

10、洗牌 打乱顺序

import random

a=['a','b','c','d','e']

random.shuffle(a)   洗牌

print(a)  运行结果:打乱list的顺序

11、import random,string

a=random.sample(string.digits,3)#随机取n个数字
print(''.join(a))#转换成字符串

a=random.choice(string.ascii_uppercase)#随机取一个大写字母
print(a)

random,string
# print(random.randint(1,199))#从1到199中随机取一个整数

# print(random.choice(['a','d','f']))
# s=random.choice(['a','d','f'])
# print(s)

# print(string.digits)#0-9之间的所有数字
# print(string.ascii_lowercase)#所有小写
# print(string.ascii_uppercase)#所有大写
# print(string.ascii_letters)#所有小写+大写
# print(string.punctuation)#所有特殊字符

模块 hashilib

加密模块,不支持解密

1、md5加密

import hashlib 

liyajing='adasdasd'  加密对象

a=hashlib.md5() 创建一个加密文件

a.update(liyajing.encode()) 进行加密,括号内容不可以是字符串,要传入bytes类型

print(a.hexdigest())  输出加密后的结果

md5加密是不可逆的,存在简单加密后结果可以破解的情况,是因为撞库 ,数据库已存在这个数据

函数化

import hashlib

def a(st:str):#定义输入的内容只能是字符串

    st_byte=st.encode() #将输入的字符串转换成二进制

    a=hashlib.md5(st_byte) #将二进制内容写入到新建的md5文件中

    res= a.hexdigest() #加密后的结果

    return res 

e=a('ass')

print(e)

 

2、.sha1 ,.sha224,sha512等,数值越大,加密后长度越长

a=hashilib.sha384('dasdas'.encode())

print(a.hexdigest())

base64模块

加密模块,支持解密

import base64

a='sasadas'

a_t=a.encode() #将字符串转换成二进制

r=base64.b64encode(a_t) #将二进制数据进行加密

print(r.decode()) #输出结果,将二进制数据转换成字符串

jiemi=base64.b64decode(r.decode()) #将字符串进行解密,同时转换成了二进制数据

print(jiemi.decode())# 输出结果,将二进制数据转换成字符串

 os模块

import os 


# print(os.getcwd())  # 取当前工作目录 绝对路径
#
# print(os.chdir(".."))# 更改当前目录
# print(os.getcwd())
#
# print(os.curdir) # 当前目录.相对路径
# print(os.pardir) # 父目录..
#
# print(os.mkdir("test1")) #在当前文件下创建文件夹
# print(os.mkdir("C://test1")) #在指定目录创建文件夹,创建文件
# print(os.rmdir("test1")) # 删除文件夹,空文件
# print(os.remove("f")) # 删除文件
# print(os.remove("../121301/day4/x")) # 删除文件
#
# print(os.listdir('.')) # 列出一个目录下的所有文件
# print(os.listdir('c://'))#列出c盘下的所有文件
#
# os.rename("test", "test1") # 重命名
# print(os.stat("kk.py")) # 获取文件信息
# print(__file__)
# print(os.path.abspath(__file__)) # 获取当前文件的绝对路径
# print(os.path.split("/usr/hehe/hehe.txt")) # 分割路径和文件名
# print(os.path.dirname("/usr/local")) # 获取父目录
# print(os.path.basename("/usr/hehe/hehe.txt")) # 获取最后一级,如果是文件显示文件名,如果是目录显示目录名
# print(os.path.exists("day9")) # 目录/文件是否存在
# print(os.path.isfile("kk.py")) # 判断是否是一个文件 可以写绝对路径
# print(os.path.isdir(r"E:\121301\day3\kk.py")) # 是否是一个路径 路径是否存在
# print(os.path.join("/root", 'hehe', 'a.sql')) # 拼接成一个路径
print(os.path.join(self.path, filename)) 拼接绝对路径

# # r 转换特殊字符

# os.set #显示操作系统的分隔符
# os.linesep #当前系统的换行符
# os.pathsep # 每个路径的分隔符,linux:,windows;
# print(os.environ) # 当前系统的环境变量
# print(os.name) #当前系统的名字

# os.system('ipconfig')#用来执行所有操作系统命令,不能获取到结果 返回值为0时 则表示执行成功,其他数字,则表示失败
#
# res=os.popen('ipconfig')#执行操作系统命令并且返回结果 用.read()命令,动态的不支持(如linux系统下top监控命令 数据变化无法获取)
# print(res.read())

sys模块
import sys
# print(sys.path)#查看环境变量
# print(sys.platform) #判断操作系统
# print(sys.version) #判断python版本
# quit('tuichu')#程序退出
# print(sys.exit('程序退出')) #程序退出
# print('hahah')
# print(sys.argv)#获取运行python文件的时候传入的参数,需要打开terminal执行

import sys
def clear_log(path):
print('已清理')
a=sys.argv 获取运行Python文件的参数,没有打开terminal之前没有上传参数,
# print(a)获取的是一个list【'c:\\120312\day5\changyy.py'】
if len(a)>1:
path=a[1]
clear_log(path)
else:
print('没参数')
 
posted @ 2018-01-20 14:50  liyajing  阅读(174)  评论(0编辑  收藏  举报