基本模块 time datetime randon os sys subprocess 打印进度条

## 基本模块

 一 .time 
 	python中常用几种时间方式:
 	1.时间戳:从1970年1月1日零时零分零秒开始计算,time.time(),得到的是个浮点数
 		常用于计算时间
 	2.格式化字符串:time.strftime('%Y-%m-%d %H:%M%S %p') 
 		常用于显示时间
 	3.结构化时间:time.localtime(),得到的struct_time分为就个元素:年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时
 		常用于获取时间的某一部分,如获取今天是今年的第几天 time.localtime().tm_yday
	4.时间转换1
	![在这里插入图片描述](https://img-blog.csdnimg.cn/20200730145315479.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RheXRpbWVzbWlsZQ==,size_16,color_FFFFFF,t_70)
如图,时间戳和格式化字符串不能直接转换,要通过结构化时间过渡
                时间戳------------------------------------------------->结构化时间------------------------------------------------>格式化字符串
1.获取现在时间戳 time.time(),返回浮点数
2.将时间戳转化为结构化时间 time.localtime(),括号内可填入浮点数,不填默认为time.time()
3.将结构化的时间转化为格式化的字符串时间,time.strftime() 括号内输入显示的格式,及时间元组,元组由9个数字组成,(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时),时间不输默认为当前时间
时间戳---》格式化的字符串
res = time.localtime(21433412)
print(res)
res1 = time.strftime('%Y-%m-%d %X',(1970, 9, 6, 9, 43, 32, 6,249, 0))
print(res1)


反之:
格式化的字符串---》时间戳
struct_time=time.strptime("2017-07-03 11:11:11","%Y-%m-%d %H:%M:%S")
res=time.mktime(struct_time)
print(res)


5.时间转换2
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020073015174025.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RheXRpbWVzbWlsZQ==,size_16,color_FFFFFF,t_70)
asctime([t])将一个时间元组或者struct_time格式的传入括号内,转化成Thu Jul 30 15:18:55 2020这种格式的形式,默认传入time.localtime()
ctime(secs)将时间戳(浮点数)转化成Thu Jul 30 15:18:55 2020这种格式的形式,默认传入time.time()

二.datatime
import datatime
用途:1.直接获得格式化字符串的时间(返回字符串)
			datetime.datetime.now()====>2020-07-30 15:24:16.707416
		2.将时间戳改成日期格式
			datetime.date.fromtimestamp(1245334315)====>2009-06-18
		3.当前日期加3天
			datetime.datetime.now() +datetime.timedelta(3)====>2020-08-02 15:31:36.490602
		4.当前日期减三天
			datetime.datetime.now() +datetime.timedelta(-3)====>2020-07-27 15:32:37.887668
		5.当前时间加3小时
			datetime.datetime.now() +datetime.timedelta(hours = 3)====>2020-07-30 18:33:35.613554
		6.当前时间加30分钟
			datetime.datetime.now() +datetime.timedelta(minutes = 30)====>2020-07-30 16:04:24.822310
		7.时间替换
			datetime.datetime.now().replace(minute = 3,hour = 4)===>2020-07-30 04:03:27.946316

三.random
	import random
	random.random()-------------------随机获得(0,1)间的小数
	random.randint(n,m)---------------随机获得[n,m]间的整数
	random.randrange(n,m)----------随机获得[n,m)间的整数
	random.choice()--------------------随机获得括号内传的数据,可以传入字符串,元组,列表
	random.sample()-------------------传入2个值,第一个数据为字符串,元组,列表,集合,第二个数据为随机取值的个数
	random.uniform(n,m)--------------随机获得(n,m)间的小数
	random.shuffle(m)-----------------随机打乱m数据顺序,m只能是列表
	
	应用:生成随机验证码
import random
def rand_code(n):
    res = ''
    for i in range(n):
        s1 = chr(random.randint(65,90))
        s2 = chr(random.randint(97,122))
        s3 = str(random.randint(0,9))
        lst = [s1,s2,s3]
        res += random.choice(lst)
    return res
print(rand_code(6))

四.os
import 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的大小
PS:
1.__file__显示的是当前文件的绝对路径
2.os.makedirs()递归生成多层目录
  os.removedirs()递归删除空目录,一路向上层删除,遇到非空则停止,开始输入目录非空则报错
  os.mkdir()生成单目录
  os.rmdir()删除单级空目录,目录非空则报错
3.os.stat()获取的是文件或者目录的信息:
	os.stat_result(st_mode=保护模式, st_ino=节点号, st_dev=驻留的设备, st_nlink= inode 的链接数, st_uid=所有者的用户ID, st_gid=所有者的组ID, st_size=普通文件以字节为单位的大小;包含等待某些特殊文件的数据, st_atime=上次访问的时间, st_mtime=最后一次修改的时间, st_ctime=由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间)
4.os.system()  运行shell命令,直接显示
5.os.environ  获取系统环境变量,返回值是字典
6.os.path.split(path)  将path分割成目录和文件名二元组返回
   os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素
   os.path.basename(path)  返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
7.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.getsize(path) 返回path的大小
8.os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

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

ps:
 sys.argv可以理解为一个列表,0位代表的是程序本身,后面的数值是为程序传的参数
 在python程序中定义需要的参数,用sys.argv[索引]与各个参数绑定

六.subprocess
	import subprocess
	obj = subprocess.Popen('命令',shell = True,stdout = subprocess.PIPE,stderr = subprocess.PIPE)
	res1 = obj.stdout.read()
	res2 = obj.stderr.read()
	print(res1.decode('gbk')
	print(res2.decode('gbk')
PS:subprocess.Popen方法中,shell = True 相当于在执行shell命令,将执行正确的值放入stdout,错误的值放入stderr,执行的值未经过系统解码,故存入stdout和stderr中的都是bytes格式的二进制,整体返回的是一个对象
用res1接收执行成功返回的值,
用res2接收执行失败返回的值
显示的时候需要解码,windows系统编码格式是gbk,故解码也需要gbk格式

七.打印进度条
import time
def func(percent):
	if percent >1:
		percent=1
	print('\r[%-50s]%d%%' % ('*' * int(50 * percent), int(percent * 100)), end='')
total_size = 1000000
get_size = 0
while get_size <total_size:
	get_size+=111111
	time.sleep(0.1)
	percent = get_size/total_size
	func(percent)







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值