python基础之模块一
一 time模块
时间表示形式
在Python中,通常有这三种方式来表示时间:时间戳、元组(struct_time)、格式化的时间字符串:
(1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
(2)格式化的时间字符串(Format String): ‘1988-03-16’
(3)元组(struct_time) :struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)
自己的例子
import time
# time.sleep(3)
print(time.time()) #当前的时间戳1493197410.6175928
# print(time.localtime()) #时间元组
print(time.localtime(3600*24)) #东八区时间,北京时间,time.struct_time(tm_year=1970, tm_mon=1, tm_mday=2, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=2, tm_isdst=0)
print(time.gmtime(3600*24)) #格林威治时间,time.struct_time(tm_year=1970, tm_mon=1, tm_mday=2, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=2, tm_isdst=0) print(time.localtime())#time.struct_time(tm_year=2017, tm_mon=4, tm_mday=26, tm_hour=17, tm_min=3, tm_sec=30, tm_wday=2, tm_yday=116, tm_isdst=0)
print(time.strftime("%Y-%m-%d %X",time.localtime())) #由当前的字符串时间转化成结构化时间2017-04-26 17:01:49 print(time.asctime(time.localtime())) #Wed Apr 26 17:05:16 2017,结构化时间变成字符串时间,%a %b %d %H:%M %S %Y串
print(time.asctime(time.localtime(149319740))) #Wed Sep 25 13:42:20 1974 print(time.ctime(1493197400)) #把时间戳换成Wed Apr 26 17:03:20 2017这样的字符串时间
print(time.time()+86400*3) print(time.mktime(time.localtime())) #结构化时间变成时间戳
print(time.strptime("2017-04-26","%Y-%m-%d")) #字符串时间变成结构化时间
老师的例子:
# <1> 时间戳 >>> import time
>>> time.time() #--------------返回当前时间的时间戳 1493136727.099066 # <2> 时间字符串 >>> time.strftime("%Y-%m-%d %X")
'2017-04-26 00:32:18' # <3> 时间元组 >>> time.localtime()
time.struct_time(tm_year=2017, tm_mon=4, tm_mday=26,
tm_hour=0, tm_min=32, tm_sec=42, tm_wday=2,
tm_yday=116, tm_isdst=0)
小结:时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的
几种时间形式的转换
(1)
二 random模块
import random #---->生成随机数
# print(random.random()) #大于0且小于1之间的小数,0.35071235628528896
# print(random.randint(1,5)) #输出一个大于等于1且小于等于5之间的整数,运行一次,输出一次结果
#
# print(random.randint(1,3)) #输出一个大于等于1且小于等于5之间的整数
#
# print(random.choice([1,'23',[4,5]])) #随机输出1或'23'或[4,5]
print(random.sample([1,'',[4,5]],2)) #列表元素任意两个组合,[1, '23']或[[4, 5], '23']或[1, '23']等待。。。 print(random.uniform(1,3)) #输出大于1小于3之间的小数,如1.6355247176726322这样的浮点型小数 item = [1,3,5,7,9]
random.shuffle(item)
print(item) #打乱列表的次序,如[1, 3, 7, 9, 5]或[3, 5, 1, 9, 7]
random模块例子
import random def v_code():
code = ''
for i in range(5):
num = random.randint(0,9) #生成大于等于0小于等于9的整数
alf=chr(random.randint(65,90)) #生成大于等于65小于等于90的整数,并转化成ASCII码(字符串)
add=random.choice([num,alf]) #生成列表[num,alf]任何一个随机数或者随机字符
code="".join([code,str(add)]) #用空字符串与add转化为字符串的文件相拼接
return code #返回值code
print(v_code()) #调用函数并输出
生成验证码
三 hashlib
Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。
什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。
摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过。
摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算f(data)很容易,但通过digest反推data却非常困难。而且,对原始数据做一个bit的修改,都会导致计算出的摘要完全不同。
我们以常见的摘要算法MD5为例,计算出一个字符串的MD5值:
import hashlib #导入hashlib模块
md5=hashlib.md5()
md5.update(b"how to use md5 in python hashlib?") #python3中必须在字符串前面加上b,代表bytes文件
md5.update()
print(md5.hexdigest()) #以16进制的形式返回摘要,32位
hashlib摘要算法
四 os模块
os模块是与操作系统交互的一个接口
import os
# a=input(">>>")
print(os.getcwd()) #查看当前路径
# f=open("test.txt","w")
# os.chdir(r"D:\Python\day33") #cd f=open("test2.txt","w")
print(os.getcwd())
os.makedirs("aaaaa/bbbbb") #创建文件夹后再创建文件
os.removedirs("aaaaa/bbbbb") #移除文件夹(必须是空的)
print(os.listdir(r"D:\Python\day33")) #列出 day33目录下的所有.py文件
print(os.stat(r"D:\Python\day33\test.txt")) #os.stat_result(st_mode=33206, st_ino=1688849860726100, st_dev=865480, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1493203404, st_mtime=1493203473, st_ctime=1493203404) print(os.name) #nt,,,,,windowsNT
print(os.system("dir")) #查看dir目录下所有的文件
print(os.path) #<module 'ntpath' from 'D:\\Program Files\\Python36\\lib\\ntpath.py'>
abs=os.path.abspath("test.txt")
print(os.path.basename(abs)) #查看绝对路径下的test.txt
print(os.path.dirname(abs)) #查看test.txt是否在 s1=r"C:\Users\Administrator\PycharmProjects"
s2=r"py_fullstack_s4\day33"
print(s1+os.sep+s2) #两个路径拼接
ret=os.path.join(s1,s2) #两个路径拼接
print(ret)
OS模块
'''
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: ('.')
os.pardir 获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2') 可生成多层递归目录
os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.stat('path/filename') 获取文件/目录信息
os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command") 运行shell命令,直接显示
os.environ 获取系统环境变量
os.path.abspath(path) 返回path规范化的绝对路径
os.path.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
os.path.getsize(path) 返回path的大小
'''
常用OS模块
五 sys模块
sys.argv 命令行参数List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0)
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称
import sys,time
for i in range(10):
sys.stdout.write('#')
time.sleep(0.3)
sys.stdout.flush()
进度条
python基础之模块一的更多相关文章
- python基础——第三方模块
python基础——第三方模块 在Python中,安装第三方模块,是通过包管理工具pip完成的. 如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了. 如果你正在使用Window ...
- python基础——使用模块
python基础——使用模块 Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用. 我们以内建的sys模块为例,编写一个hello的模块: #!/usr/bin/env ...
- 二十五. Python基础(25)--模块和包
二十五. Python基础(25)--模块和包 ● 知识框架 ● 模块的属性__name__ # my_module.py def fun1(): print("Hello& ...
- python 基础之 模块
Python 基础之模块 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 就是一个python文件中定义好了类和方法,实现了一些功能,可以被别的python文 ...
- 【Python之路】第六篇--Python基础之模块
模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...
- 周末班:Python基础之模块
什么是模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写 ...
- python基础-各模块文章导航
python基础学习日志day5-各模块文章导航 python基础学习日志day5---模块使用 http://www.cnblogs.com/lixiang1013/p/6832475.html p ...
- python基础--导入模块
一,import的使用1, 模块就是一组功能的集合体,我们的程序可以导入模块来复用模块中的功能一个模块就是包含了一组功能的python文件,例如demo.py 可以通过import来使用这个文件定义d ...
- python基础-7模块,第三方模块安装方法,使用方法。sys.path os sys time datetime hashlib pickle json requests xml
模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...
- 学习PYTHON之路, DAY 6 - PYTHON 基础 6 (模块)
一 安装,导入模块 安装: pip3 install 模块名称 导入: import module from module.xx.xx import xx from module.xx.xx impo ...
随机推荐
- 安装MySQL版本为mysql-installer-community-5.7.17.msi
双击MySQL安装包, 勾选复选框,点击下一步: 选择仅仅服务器模式,点击下一步: 直接点击执行: 执行完成,点击下一步: 确认配置,点击下一步: 输入用户名和密码,点击下一步: 默认选项,点击下一步 ...
- golang的多协程实践
go语言以优异的并发特性而闻名,刚好手上有个小项目比较适合. 项目背景: 公司播控平台的数据存储包括MySQL和ElasticSearch(ES)两个部分,编辑.运营的数据首先保存在MySQL中,为了 ...
- corethink功能模块探索开发(十四)后台编辑按钮
效果图: 1.添加下图55&58行代码 2.实现edit方法 位于Equip/Admin/DeviceRepaireAdmin.class.php中 public function edit( ...
- HTTP协议简要介绍
1. 网络基础 TCP/IP 通常使用的网络是在TCP/IP协议簇基础上运作的. HTTP属于它内部的一个子集. TCP/IP分为4个层次, 应用层, 传输层, 网络层, 链路层. (Applicat ...
- LINQ不包含列表
var query=lista.Where(p=>!listb.Any(g=>p.id==g.id && p.no==g.no))
- day4-迭代器、生成器yield
一.迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外,迭代器的一大优 ...
- 基于WinIO 3.0实现驱动级键盘模拟输入
基于WinIO 3.0实现驱动级键盘模拟输入 一个业务场景需要使用驱动级的键盘模拟,折腾了2天,总结一下,为后人节省时间. 限制条件: 1.需要真实PC机,虚拟机不行 2.仅支持PS/2 键盘(指外接 ...
- HDU - 6336 Problem E. Matrix from Arrays (规律+二维前缀和)
题意: for (int i = 0; ; ++i) { for (int j = 0; j <= i; ++j) { M[j][i - j] = A[cursor]; cursor = (cu ...
- DB 数据同步到数据仓库的架构与实践
背景 在数据仓库建模中,未经任何加工处理的原始业务层数据,我们称之为ODS(Operational Data Store)数据.在互联网企业中,常见的ODS数据有业务日志数据(Log)和业务DB数据( ...
- hadoop 2.0安装及HA配置简述
一.单机模式 a.配置本机到本机的免密登录 b.解压hadoop压缩包,修改hadoop.env.sh中的JAVA_HOME c.修改core-site.xml <configuration&g ...