CSIC_716_20191116【常用模块的用法 time ,datetime, random, os, sys, hashlib】
import time
import datetime
import os
import sys
import random
import hashlib
time模块
时间戳(Timestamp)
time.time( ) 时间戳是从1970年1月1日0时0分0秒开始计数,是以秒计数的float类型数字。
格式化时间 (Format String)
time.strftime( ) ,括号中可以传 (%Y,%m,%d,%H,%M,%S)
import time
time.strftime('%Y-%m-%d')
time.strftime('%Y-%m-%d %H:%M:%S')
time.strftime('%Y-%m-%d %X')
time.strftime('%X')
“时分秒” 可以通过%X全部一起打印出来
格式化时间对象 (struct time)
struct_time = time.localtime() #将本地时间戳转为格式化时间对象
struct_time = time.gmtime() # 将标准时间戳转为格式化时间对象
res1 = time.strftime('%X', time.localtime()) # 当前时区的格式化时间对象转为格式化时间
res2 = time.strftime('%X', time.gmtime()) # # 将时间对象转化为格式化时间
res3 = time.strptime('2019-4-5','%Y-%m-%d') # 将格式化时间转化为格式化时间对象
# 格式化时间对象返回的是元组,其中tm_yday表示时间是一年中的第几天
datetime模块
可以用来计算
获取当前的年月日:
import datetime
print(datetime.date.today()) # 获取当前的日期
print(datetime.datetime.today()) # 获取当前的时间和日期
time_obj = datetime.datetime.today() # 获取当前的时间和日期,变成时间对象
print(datetime.datetime.now()) # 当前时间
print(datetime.datetime.utcnow()) # 标准时间
时间及日期的运算
import datetime
time_obj = datetime.datetime.today() # 获取当前的时间和日期,变成时间对象
later = datetime.timedelta(hours=20) # 差值的时间对象
new_date = time_obj + later # 时间对象之间可以进行加减运算
random模块
基本内容
import random
a = random.randint(1,9) # 可以取到两侧的边界
print(a)
b = random.random() # 取值范围在0和1之间的任意数
print(b)
list1 = [1, 2, 3, 4, 5, 6]
new_list = random.shuffle(list1) # 打乱可迭代对象中的排列顺序(shuffle洗牌)
print(list1)
element = random.choice(range(5)) # 在可迭代对象中随机取出一个值(choice抽牌)
print(element)
需求:实现5位数的验证码,其中要包含大小写英文字母和数字。
chr(数字) 可以将将数字的值转化成对应的ASCII码表中的符合
在ASCII码表中:a-z[97,122],A-Z[65,90],0-9[48,57],空格是32,NULL是0
def veri_code(n):
res = ''
for i in range(n):
low_alpha = chr(random.randint(97, 122))
upper_alpha = chr(random.randint(65, 90))
num = str(random.randint(0, 9))
list = [low_alpha, upper_alpha, num]
res = res + random.choice(list)
return res
verification_code = veri_code(9)
print(verification_code)
os模块
主要涉及:1、当前文件的绝对路径 2、上级目录的绝对地址 3、如何拼接文件路径 4、判断文件以及文件夹是否存在 5、判断是否是文件夹 6、创建文件夹 7、删除文件夹 8、打印文件夹下的目录
# _*_ coding: gbk _*_
# @Author: Wonder
import os
BASE_PATH = os.path.abspath(__file__) # 获取当前文件的绝对路径
print(BASE_PATH)
ROUTE = os.path.dirname(__file__) # 获取当前文件的上一级目录的地址
print(ROUTE)
TEST_PATH = os.path.join(ROUTE, 'abc.txt') # 拼接文件地址
print(TEST_PATH)
print(os.path.exists(ROUTE)) # 判断文件路劲是否存在
print(os.path.exists(BASE_PATH)) #判断的结果为True或许False
print(os.path.isdir(BASE_PATH)) #判断文件夹是否存在(isdirector)
# 创建文件夹
NEWFILE_PATH = os.path.join(ROUTE, 'os的演示') #先拼接出地址
os.mkdir(NEWFILE_PATH) # 再创建文件夹
#删除文件夹
os.rmdir(NEWFILE_PATH) #删除文件夹也是基于路径操作的,如果文件夹中有内容,就不允许删除。
#获取文件夹中所有的文件名
dirctory_list = os.listdir(ROUTE) #参数也是文件夹的路径
print(dirctory_list)
list1 =list(enumerate(dirctory_list)) # enumerate是枚举函数,在原可迭代对象每个元素前加上序号,组成元组
print(list1)
# _*_ coding: gbk _*_
# @Author: Wonder
import os
PATH = os.path.dirname(__file__)
print(os.listdir(PATH)) # 返回PATH路径下的带扩展名的文件名 以及文件夹名,是个列表
# ['123', 'abc抽象类.py', 'os 模块测试.py', 'readme.txt', '周长与面积.py', '第一题.py']
sys模块
主要用于增加环境变量,与python解释器交互
sys.path 是当前的环境变量,是一个列表
sys.path.append(os.path.dirname(file))
sys.agrv 此处功能欠缺,需要补充......
获取cmd终端的命令行
hashlib模块
常用的加密方法MD5,只要原始值一样,通过MD5加密后的结果也一样。容易被撞库导致密码被暴力破解。
因此,在加密过程中通过加盐,保证了明文和密文之间不同步,在验证密码的时候也需要加盐进行对比判断。
md5_obj = md5() # 建立空对象
md5_obj.update(password.encode('utf-8')) # 此处要以bytes形式增加,加盐同理
real_pwd = md5_obj.hexdigest() # 进行加密处理
以下为对密码加密的实例
from hashlib import md5
import time
md5_obj = md5() # 建立空对象
print(type(md5_obj))
username = input('>>>请输入用户名')
password = input('>>>请输入密码')
md5_obj.update(password.encode('utf-8')) # 此处要以bytes形式增加
sal = '坦克车'
md5_obj.update(sal.encode('utf-8'))
real_pwd = md5_obj.hexdigest() # 进行加密处理
with open(f'{username}.txt', 'w', encoding='utf-8')as wf:
wf.write(f'{username}:{real_pwd}:{time.strftime("%Y-%m-%d %X")}')
CSIC_716_20191116【常用模块的用法 time ,datetime, random, os, sys, hashlib】的更多相关文章
- Python常用模块(time, datetime, random, os, sys, hashlib)
time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp) : 通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运 ...
- time,datetime,random,os,sys,hashlib,logging,configparser,re模块
#-----time模块----- print(help(time)) #打印time帮助文档 print(time.time()) #打印时间戳 1569824501.6265268 time.sl ...
- Python常用模块(logging&re&时间&random&os&sys&shutil&序列化&configparser&&hashlib)
一. logging(日志模块) 二 .re模块 三. 时间模块 四. random模块 五. os模块 六. sys模块 七. shutil模块 八. 序列化模块(json&pickle&a ...
- python笔记-1(import导入、time/datetime/random/os/sys模块)
python笔记-6(import导入.time/datetime/random/os/sys模块) 一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其 ...
- 常用模块之 time,datetime,random,os,sys
time与datetime模块 先认识几个python中关于时间的名词: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行“ty ...
- python笔记-6(import导入、time/datetime/random/os/sys模块)
一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其它内容待日后有深入理解了再来细说 1.import可以导入的两种不同的内容 1.1 *.py文件结尾的文件 ...
- python之常见模块(time,datetime,random,os,sys,json,pickle)
目录 time 为什么要有time模块,time模块有什么用?(自己总结) 1. 记录某一项操作的时间 2. 让某一块代码逻辑延迟执行 时间的形式 时间戳形式 格式化时间 结构化时间 时间转化 总结: ...
- Day 17 time,datetime,random,os,sys,json,pickle
time模块 1.作用:打印时间,需要时间的地方,暂停程序的功能 时间戳形式 time.time() # 1560129555.4663873(python中从1970年开始计算过去了多少秒) 格式化 ...
- python基础语法11 内置模块time,datatime,random,os,sys,hashlib模块
time模块 在python的三种时间表现形式: 1.时间戳: 给电脑看的. - 自1970-01-01 00:00:00到当前时间,按秒计算,计算了多少秒. 2.格式化时间(Format Strin ...
随机推荐
- swiper实现上下滑动翻页,内置内容页也滚动
如果我猜的没错,是全网(哈哈)比较少的成功解决方案,如需要转载,请声明并转载出处. swiper实现了上下滑动翻页,但是有几个页面的内容显示不完.如果一页显示不完时可以滑动查看,应该怎么做?这个是我多 ...
- background-size的值cover、contain和100%
图1 给一个宽600px,高600px的div添加一张宽480px,高360px的背景图片.不重复显示的情况下,默认显示为图1. 1.background-size: 100% 100%; 会将图片的 ...
- 编写一个简单的内核驱动模块时报错 “/lib/modules/3.13.0-32-generic/bulid: 没有那个文件或目录。 停止。”
编写一个简单的内核驱动模块 static int hello_init() { printk(“hello,I am in kernel now\n”); ; } void addfunc(int a ...
- C语言结构体数组
#include <stdio.h> int main() { /*************************************************** *结构体数组:数组 ...
- 原型对象(JS中的父类)
原型 prototype 我们所创建的每一个函数,解析器都会向函数中添加 一个属性prototype ,这个属性对应的对象就是我们所谓的原型对象 判断函数中是否含有prototype属性,有则返回 ...
- python sorted()的简单使用
今天在学习python的时候,碰到了sorted()这个函数,其作用是在不改变列表排序的情况下,将列表的内容按照特定的顺序表示出来. 在练习的时候,编辑了几条命令进行测试. cars=['bmw',' ...
- 笔记30 视图解析 ——TilesViewResolver
Apache Tiles,定义适用于所有页面 的通用页面布局.Spring MVC以视图解析器的形式为Apache Tiles提 供了支持,这个视图解析器能够将逻辑视图名解析为Tile定义. 1.配 ...
- sqoop的导入|Hive|Hbase
导入数据(集群为对象) 在Sqoop中“导入”概念指:从非大数据集群(RDBMS)向大数据集群(HDFS,HIVE,HBASE)中传输数据,叫做:导入,即使用import关键字. 1 RDBMS到HD ...
- NX二次开发-UFUN编辑图层类别名字UF_LAYER_edit_category_name
NX11+VS2013 #include <uf.h> #include <uf_layer.h> UF_initialize(); //创建图层类别 UF_LAYER_cat ...
- 关于CoreData的一个工具Mogenerator的使用
最近看到用CoreData时使用的工具Mogenerator,发现网上介绍其具体使用的不多,特此简单整理一下, 关于CoreData这里就不具体说了,使用就用MagicalRecord,用起来真是太方 ...