day16-常用的模块(time,json,pickel以及os模块)

一、time与datetime模块

在Python中,通常有这几种方式来表示时间:
时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
格式化的时间字符串(Format String)
结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)
1 1 import time
2 2 #--------------------------我们先以当前时间为准,让大家快速认识三种形式的时间
3 3 print(time.time()) # 时间戳:1487130156.419527
4 4 print(time.strftime("%Y-%m-%d %X")) #格式化的时间字符串:'2017-02-15 11:40:53'
5 5 
6 6 print(time.localtime()) #本地时区的struct_time
7 7 print(time.gmtime())    #UTC时区的struct_time
常用的时间操作
 1 %a    Locale’s abbreviated weekday name.     
 2 %A    Locale’s full weekday name.     
 3 %b    Locale’s abbreviated month name.     
 4 %B    Locale’s full month name.     
 5 %c    Locale’s appropriate date and time representation.     
 6 %d    Day of the month as a decimal number [01,31].     
 7 %H    Hour (24-hour clock) as a decimal number [00,23].     
 8 %I    Hour (12-hour clock) as a decimal number [01,12].     
 9 %j    Day of the year as a decimal number [001,366].     
10 %m    Month as a decimal number [01,12].     
11 %M    Minute as a decimal number [00,59].     
12 %p    Locale’s equivalent of either AM or PM.    (1)
13 %S    Second as a decimal number [00,61].    (2)
14 %U    Week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Sunday are considered to be in week 0.    (3)
15 %w    Weekday as a decimal number [0(Sunday),6].     
16 %W    Week number of the year (Monday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Monday are considered to be in week 0.    (3)
17 %x    Locale’s appropriate date representation.     
18 %X    Locale’s appropriate time representation.     
19 %y    Year without century as a decimal number [00,99].     
20 %Y    Year with century as a decimal number.     
21 %z    Time zone offset indicating a positive or negative time difference from UTC/GMT of the form +HHMM or -HHMM, where H represents decimal hour digits and M represents decimal minute digits [-23:59, +23:59].     
22 %Z    Time zone name (no characters if no time zone exists).     
23 %%    A literal '%' character.
常用的时间格式
 1 mport time
 2 # print(time.time()) #时间戳
 3 # print(time.strftime('%Y-%m-%d %c %X')) #格式化时间
 4 # print(time.localtime()) #可以输入数字 会转化时间
 5 # print(time.gmtime(238884))
 6 # print(time.gmtime())
 7 # print(time.strftime('%Y-%m-%d %A %X')) #A显示完整的星期几时间 a表示星期几的缩写
 8 # print(time.strftime('%Y-%m-%d %B %X')) #B显示完整的月份时间 a表示月份的缩写
 9 # print(time.strftime('%c')) #直接显示Wed Jun 20 15:08:51 2018
10 # print(time.strftime('%d'))  #显示日期
11 # print(time.strftime('%H'))  #显示24小时时间
12 # print(time.strftime('%I'))  #显示12小时时间
13 # print(time.strftime('%j'))  #显示显示今天是今年的多少天
14 # print(time.strftime('%m'))   #显示显示月份
15 # print(time.strftime('%M'))   #显示显示分钟
16 # print(time.strftime('%w'))   #显示显示星期几 数字
17 # print(time.strftime('%W'))   #显示今年的第几个星期
18 # print(time.strftime('%x'))   #显示今年年月 06/20/18
19 # print(time.strftime('%X'))   #显示时间15:16:39
20 # print(time.strftime('%y'))   #显示18 年的最后2位
21 # print(time.strftime('%Y'))   #显示2018
22 # print(time.strftime('%z'))   #显示2018
23 # print(time.strftime('%%'))   #显示2018
24 # print(time.localtime())      #显示结构化时间
25 # print(time.localtime(1234))  #显示结构化时间
26 # print(time.mktime(time.localtime())) #将结构化时间转为时间戳
27 # print(time.strftime('%Y-%m-%d %H:%M:%S'))#2018-06-20 15:23:19
28 # print(time.gmtime()) #格林时间的结构化时间
29 # print(time.strptime('123','%Y-%m-%d %H:%M:%S'))
30 # print(time.asctime()) #Wed Jun 20 15:30:22 2018
常用时间格式的具体打印效果

二、时间戳、格式化时间、结构化时间之间的相互转换

day16-常用的模块(time,json,pickel以及os模块)_第1张图片

1 #--------------------------按图2转换时间
2 # asctime([t]) : 把一个表示时间的元组或者struct_time表示为这种形式:'Sun Jun 20 23:21:05 1993'。
3 # 如果没有参数,将会将time.localtime()作为参数传入。
4 print(time.asctime())#Sun Sep 11 00:43:43 2016
5 
6 # ctime([secs]) : 把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为
7 # None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。
8 print(time.ctime())  # Sun Sep 11 00:46:38 2016
9 print(time.ctime(time.time()))  # Sun Sep 11 00:46:38 2016
#时间加减
import datetime

# print(datetime.datetime.now()) #返回 2016-08-19 12:47:03.941925
#print(datetime.date.fromtimestamp(time.time()) )  # 时间戳直接转成日期格式 2016-08-19
# print(datetime.datetime.now() )
# print(datetime.datetime.now() + datetime.timedelta(3)) #当前时间+3天
# print(datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天
# print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时
# print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分
#
# c_time  = datetime.datetime.now()
# print(c_time.replace(minute=3,hour=2)) #时间替换

三 random模块

 1 import random
 2  
 3 print(random.random())#(0,1)----float    大于0且小于1之间的小数
 4  
 5 print(random.randint(1,3))  #[1,3]    大于等于1且小于等于3之间的整数
 6  
 7 print(random.randrange(1,3)) #[1,3)    大于等于1且小于3之间的整数
 8  
 9 print(random.choice([1,'23',[4,5]]))#1或者23或者[4,5]
10  
11 print(random.sample([1,'23',[4,5]],2))#列表元素任意2个组合
12  
13 print(random.uniform(1,3))#大于1小于3的小数,如1.927109612082716 
14  
15  
16 item=[1,3,5,7,9]
17 random.shuffle(item) #打乱item的顺序,相当于"洗牌"
18 print(item)
 1 import random
 2 def make_code(n):
 3     res=''
 4     for i in range(n):
 5         s1=chr(random.randint(65,90))
 6         s2=str(random.randint(0,9))
 7         res+=random.choice([s1,s2])
 8     return res
 9 
10 print(make_code(9))
随机生成验证码

四、os模块

 1 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
 2 os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd
 3 os.curdir  返回当前目录: ('.')
 4 os.pardir  获取当前目录的父目录字符串名:('..')
 5 os.makedirs('dirname1/dirname2')    可生成多层递归目录
 6 os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
 7 os.mkdir('dirname')    生成单级目录;相当于shell中mkdir dirname
 8 os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
 9 os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
10 os.remove()  删除一个文件
11 os.rename("oldname","newname")  重命名文件/目录
12 os.stat('path/filename')  获取文件/目录信息
13 os.sep    输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
14 os.linesep    输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
15 os.pathsep    输出用于分割文件路径的字符串 win下为;,Linux下为:
16 os.name    输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
17 os.system("bash command")  运行shell命令,直接显示
18 os.environ  获取系统环境变量
19 os.path.abspath(path)  返回path规范化的绝对路径
20 os.path.split(path)  将path分割成目录和文件名二元组返回
21 os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素
22 os.path.basename(path)  返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
23 os.path.exists(path)  如果path存在,返回True;如果path不存在,返回False
24 os.path.isabs(path)  如果path是绝对路径,返回True
25 os.path.isfile(path)  如果path是一个存在的文件,返回True。否则返回False
26 os.path.isdir(path)  如果path是一个存在的目录,则返回True。否则返回False
27 os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
28 os.path.getatime(path)  返回path所指向的文件或者目录的最后存取时间
29 os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间
30 os.path.getsize(path) 返回path的大小
os模块的常用方法
在Linux和Mac平台上,该函数会原样返回path,在windows平台上会将路径中所有字符转换为小写,并将所有斜杠转换为饭斜杠。
>>> os.path.normcase('c:/windows\\system32\\')   
'c:\\windows\\system32\\'   
   

规范化路径,如..和/
>>> os.path.normpath('c://windows\\System32\\../Temp/')   
'c:\\windows\\Temp'   

>>> a='/Users/jieli/test1/\\\a1/\\\\aa.py/../..'
>>> print(os.path.normpath(a))
/Users/jieli/test1
在linux和mac平台上
 1 os路径处理
 2 #方式一:推荐使用
 3 import os
 4 #具体应用
 5 import os,sys
 6 possible_topdir = os.path.normpath(os.path.join(
 7     os.path.abspath(__file__),
 8     os.pardir, #上一级
 9     os.pardir,
10     os.pardir
11 ))
12 sys.path.insert(0,possible_topdir)
13 
14 
15 #方式二:不推荐使用
16 os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
os处理路径

 

转载于:https://www.cnblogs.com/wcl0517/p/9204143.html

你可能感兴趣的:(json,shell,操作系统)