• 周五. 4月 26th, 2024

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

模块1 time,random,os ,hashlib

admin

11月 28, 2021

模块:就是一个.py 文件,函数只能在一个.py文件里用。

分为:内置模块,  内置再pycharm里

   第三方模块,别人开发好的,

   自定义模块,自己写的,包含模块调用,包的调用

time模块

用字符串表示时间,‘2017-06-21’是人能够识别的,而计算机则不行,需要转换才行

1.时间戳
import time
print(time.time()) 结果 1498022736.3174474 是从1970年到当前时间的总秒数
时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。
我们运行“type(time.time())”,返回的是float类型。

2.结构化时间表示

import time
print(time.localtime())  #以北京东八区时间为准

–time.struct_time(tm_year=2017, tm_mon=6, tm_mday=21, tm_hour=13, tm_min=30, tm_sec=3, tm_wday=2, tm_yday=172, tm_isdst=0)

import time
print(time.gmtime())   #世界标准时间

4.将结构化时间转化为时间戳   mktime

import time
print(time.mktime(time.localtime())) 结果 1498023470.0
将当地的总时间,计算成总秒数

5.结构化时间 转为  字符串时间
import time
print(time.strftime('%Y-%m-%d',time.localtime())) 结果  2017-06-21

6.字符串时间 转为  结构化时间
import time
print(time.strptime('1990-02-01','%Y-%m-%d'))
结果
time.struct_time(tm_year=1990, tm_mon=2, tm_mday=1, tm_hour=0,
tm_min=0, tm_sec=0, tm_wday=3, tm_yday=32, tm_isdst=-1)
时间戳是计算机能够识别的  ,以 float的形式存在
结构化时间是以元组的形式操作时间,
时间字符串是人能够看懂的
7.  asctime  结构化时间(locattime)  转为  字符串时间 ,不需要提供格式,asctime本身有固定的格式
import time
print(time.asctime()) 结果 Wed Jun 21 13:54:56 2017
8.
time.sleep(3)   #等待3秒,再执行打印,就是i/o阻塞
print('ok')
=============================================
random 随机模块
1.random  ,生成0--1的随机浮点型数字
import random
print(random.random()) 结果 0.9535195458063495 ,每次产生都不一样

2.randint 在范围内随机产生的整形数字
import random
print(random.randint(1,5)) 结果 随机产出1--5之间的整形数字,包含5在内

3.
import random
print(random.randrange(1,5)) #与randint相同,但取不到尾部数字

4.
import random
print(random.choice([1,5,3,'a'])) #在列表随机取一个数字


5.
import random
print(random.sample([1,5,3,'a'],2)) #在列表内可以指定随机取出几个  结果 随机产生['a', 3]
6.
import random
print(random.uniform(1,3))  #取范围内的float型,

7.
l=[11,22,33,44]
random.shuffle(l)   #把之前的列表内元素顺序打乱
print(l)     结构[22, 11, 44, 33]

———————————-

chr 是ASCII表中数字  与 字母  的对应关系

ord 是ASCII表中字母 与数字   的对应关系

利用random模块随机验证码

import random
def valdate_code():
ret=''
for i in range(5):
num=random.randint(0,9)
alfa=chr(random.randint(97,122))
alfa1=chr(random.randint(65,90))
s=random.choice([str(num),alfa,alfa1])
ret=ret+s
return ret
print(valdate_code()) ---结果 是随机产生的 Mau8N


=======================

hashlib是个专门提供hash算法的库,其支持openssl 库提供的所有算法,包括md5, sha1, sha224, sha256, sha384, sha512,使用非常简单、方便。md5经常用来做用户密码的存储。而sha1则经常用作数字签名。


1)MD5码


MD5的全称是Message-Digest Algorithm 5(信息-摘要算法)。128位长度。目前MD5是一种不可逆算法。

具有很高的安全性。它对应任何字符串都可以加密成一段唯一的固定长度的代码。

用途:


根据这种唯一性,可以计算两个文件MD5码,判断两个文件是否相同;

md5 = hashlib.md5()
md5.update(b'gyh')
print(md5.hexdigest()) # 16进制的方式加密
结果 d6f793b3106b2d35dbb8230265753f13

A 给 B 发送数据,A把 计算数据的md5 ,发送过去 “gyh” ,
B为了确定是否被改动,就计算MD5码来验证,与A的md5来比较是否一样,一样就是没有改动,否则就是改动。
hashlib提供的是不可逆的算法,在数据库里存放的是16进制的加密暗文,当发送时就是明文发送,对方再校验是否被篡改。

如果数据大, 就分多次update
md5 = hashlib.md5()
md5.update(b'gyh')
md5.update(b'adfdfdfdfd')
print(md5.hexdigest())
结果
f2e59391c71431de1286a5d11ba7e60e

MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,
通常用一个32位的16进制字符串表示。另一种常见的摘要算法是SHA1,调用SHA1和调用MD5完全类似:
sha1 = hashlib.sha1()
sha1.update(b'gyh')
sha1.update(b'adfdfdfdfd')
print(sha1.hexdigest())
结果  fc371385bfe232771168cd6406b3458474901e6c

SHA1的结果是160 bit字节,通常用一个40位的16进制字符串表示。
比SHA1更安全的算法是SHA256和SHA512,不过越安全的算法越慢,而且摘要长度更长。
=============================
os模块 是与操作系统提供一个接口
操作系统是向下管理硬件,向上提供接口
import os
print(os.getcwd()) #获取当前的工作目录
结果 C:UserslenovoPycharmProjectsuntitled6.21

import os
print(os.mkdir(r'C:UserslenovoPycharmProjectsuntitled6.20d.txt'))
结果,该目录下生成新的 d.txt 文件

import os
print(os.makedirs(r'C:UserslenovoPycharmProjectsuntitled6.20pk'))
结果 生成 p 目录下的 k 目录

import os
print(os.rename(r'C:UserslenovoPycharmProjectsuntitled6.21c.txt','b.txt'))
#把目录下的c.txt改成b.txt

import os
print(os.stat(r'C:UserslenovoPycharmProjectsuntitled6.21/b.txt')) #查看文件的所有信息
结果
os.stat_result(st_mode=16895, st_ino=6473924464490971, st_dev=2833053575,
st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1498030015, st_mtime=1498030015, st_ctime=1498030015)

 st_atime  最后一次访问文件的时间
st_mtime  文件的修改时间
st_ctime  创建文件的时间

import os
print(os.path.abspath(r'C:UserslenovoPycharmProjectsuntitled6.21'))
结果  文件的绝对路径C:UserslenovoPycharmProjectsuntitled6.21

import os
print(os.path.split(r'C:UserslenovoPycharmProjectsuntitled6.21'))
结果 ,把path分割成目录和文件名('C:\Users\lenovo\PycharmProjects\untitled', '6.21')

os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path)  返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素

import os
print(os.path.isabs(r'C:UserslenovoPycharmProjectsuntitled6.21'))
结果  True  判断路径是否为绝对路径


import os
print(os.path.getsize(r'C:UserslenovoPycharmProjectsuntitled6.21.txt1.txt'))
结果  8   获取文件的大小,
-----------------------
import os
print(os.path.getatime(r'C:UserslenovoPycharmProjectsuntitled6.21.txt1.txt'))
获取文件最后存取时间 结果 1498032094.0046003 是时间戳的形式
import os
print(os.path.getmtime(r'C:
指向的文件或者目录的最后修改时间   结果  1498032094.006605723
 
 
import time
print(time.localtime(1498032094.0046003)) #时间戳转为结构化时间
结果 time.struct_time(tm_year=2017, tm_mon=6, tm_mday=21, tm_hour=16, tm_min=1, tm_sec=34, tm_wday=2, tm_yday=172, tm_isdst=0)
print(time.strftime('%Y-%m-%d',time.localtime(1498032094.0046003)))   结果 2017-06-21 # 结构时间转为字符串时间

------------------------------------
 
 
 










《模块1 time,random,os ,hashlib》有2个想法
  1. Melhor aplicativo de controle parental para proteger seus filhos – Monitorar secretamente secreto GPS, SMS, chamadas, WhatsApp, Facebook, localização. Você pode monitorar remotamente as atividades do telefone móvel após o download e instalar o apk no telefone de destino.

  2. How to track the location of the other person’s phone without their knowledge? You will be able to track and monitor text messages, phone calls, location history and much more. Free Remote Tracking and Recording of Husband’s Phone Cell Phone Spy. Best Apps to Download for Free to Spy on Another Phone. https://www.xtmove.com/

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注