模块1 time,random,os ,hashlib

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

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

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

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

time模块

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

1.时间戳import timeprint(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 timeprint(time.mktime(time.localtime()))    结果  1498023470.0将当地的总时间,计算成总秒数

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

6.字符串时间  转为  结构化时间
import timeprint(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 timeprint(time.asctime())   结果  Wed Jun 21 13:54:56 20178.
time.sleep(3)   #等待3秒,再执行打印,就是i/o阻塞print(‘ok‘)
=============================================random  随机模块
1.random  ,生成0--1的随机浮点型数字import randomprint(random.random())   结果  0.9535195458063495  ,每次产生都不一样

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

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

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

5.import randomprint(random.sample([1,5,3,‘a‘],2))   #在列表内可以指定随机取出几个  结果 随机产生[‘a‘, 3]
6.import randomprint(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 randomdef 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 retprint(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进制的加密暗文,当发送时就是明文发送,对方再校验是否被篡改。

如果数据大, 就分多次updatemd5 = 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 osprint(os.getcwd())  #获取当前的工作目录结果  C:\Users\lenovo\PycharmProjects\untitled\6.21
import osprint(os.mkdir(r‘C:\Users\lenovo\PycharmProjects\untitled\6.20\d.txt‘))结果,该目录下生成新的  d.txt 文件
import osprint(os.makedirs(r‘C:\Users\lenovo\PycharmProjects\untitled\6.20\p\k‘))结果  生成 p 目录下的 k 目录
import osprint(os.rename(r‘C:\Users\lenovo\PycharmProjects\untitled\6.21\c.txt‘,‘b.txt‘))
#把目录下的c.txt改成b.txt
import osprint(os.stat(r‘C:\Users\lenovo\PycharmProjects\untitled\6.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 osprint(os.path.abspath(r‘C:\Users\lenovo\PycharmProjects\untitled\6.21‘))
结果  文件的绝对路径C:\Users\lenovo\PycharmProjects\untitled\6.21

import osprint(os.path.split(r‘C:\Users\lenovo\PycharmProjects\untitled\6.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 osprint(os.path.isabs(r‘C:\Users\lenovo\PycharmProjects\untitled\6.21‘))
结果  True  判断路径是否为绝对路径


import osprint(os.path.getsize(r‘C:\Users\lenovo\PycharmProjects\untitled\6.21\b.txt\1.txt‘))
结果  8   获取文件的大小,-----------------------
import osprint(os.path.getatime(r‘C:\Users\lenovo\PycharmProjects\untitled\6.21\b.txt\1.txt‘))获取文件最后存取时间    结果   1498032094.0046003   是时间戳的形式
import osprint(os.path.getmtime(r‘C:\
指向的文件或者目录的最后修改时间   结果  1498032094.006605723
 
 
import timeprint(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   #  结构时间转为字符串时间------------------------------------
 
 
 

				
时间: 2024-10-06 00:40:49

模块1 time,random,os ,hashlib的相关文章

day6 模块time datetime random os sys json pikle

不写容易忘,感觉好多都陌生了,重新补回来 模块:用一坨代码实现了某个功能的代码集合 time & datetime模块 #_*_coding:utf-8_*_ import time import datetime   print(time.clock()) #返回处理器时间,3.3开始已废弃 print(time.process_time()) #返回处理器时间,3.3开始已废弃 print(time.time()) #返回当前系统时间戳 print(time.ctime()) #输出Tue

模块:time,random,os,sys

时间模块 import time # print(time.time()) #时间戳 # print(time.strftime('%Y-%m-%d %X')) #格式化字符 # print(time.strftime('%Y-%m-%d %H-%M-%S')) # print(time.localtime()) #时间字符串 # print(time.struct_time) #时间戳是计算机能够识别的时间,格式化时间字符串是人能看的时间,元组用来操作时间 # print(time.local

模块( collections , time , random , os , sys)

认识模块: 一条代码 < 语句块 < 代码块(函数, 类) < 模块. collections (克莱克森斯) 1. Counter #用来查看字符出现的次数.s = "upup qwe" print(Counter(s)) 队列: FI FO. 先进先出  栈:  FI LO. 先进后出 2.deque(双向队列) from collections import deque s = deque() s.append("娃哈哈") s.append

8.模块介绍 time &amp;datetime模块 random os sys shutil json &amp; picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式

本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.p

python 常用模块 time random os模块 sys模块 json &amp; pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess logging re正则 转自老男孩老师Yuan:http://www.cnblogs.com/yuanchenqi/articles/5732581.html 模块&包(* * * * *) 模块(modue)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,

python成长之路第三篇(4)_作用域,递归,模块,内置模块(os,ConfigParser,hashlib),with文件操作

打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.作用域 2.递归 3.模块介绍 4.内置模块-OS 5.内置模块-ConfigParser 6.内置模块-hashlib 7.with文件操作 代码执行环境默认为3.5.1 一.作用域 (1)什么是作用域,官方来说作用域就是就是有不同的命名空间,就像下面的代码一样,a=1它的作用域是全局的,也在全局的命名空间当中,当函数 action中的a=2它就在局部的作用域中,也在局部的命名空间当中. a = 1def

常见模块之time、os、random模块

时间模块 和时间有关系的我们就要用到时间模块.在使用模块之前,应该首先导入这个模块. 1 #常用方法 2 1.time.sleep(secs) 3 (线程)推迟指定的时间运行.单位为秒. 4 2.time.time() 5 获取当前时间戳 表示时间的三种方式 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行"t

python基础 random os模块

random模块 生成随机值的模块 1 import random 2 l1 = [1, 2, 3] 3 print(random.random()) #0-1之间随机浮点数 4 print(random.uniform(1,3)) #1-3之间随机浮点数 5 print(random.randint(1,3)) #1,2,3整数随机值 6 print(random.randrange(1,3)) #1,2整数随机值 7 print(random.choice([1, 2, 3])) #从可迭代

模块sys,os,hashlib,time,random

内置模块sys,os sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.maxunicode 最大的Unicode值 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 sys.stdout.write('please:') val = s