Python基础-day18-模块

import time

print(time.time())
print(time.strftime('%Y-%m-%d-%H-%M-%S %a'))
print(time.strftime('%X'))

1573196824.8292189

2019-11-08-15-07-04 Fri

15:07:04

 

print(time.localtime())

打印:

time.struct_time(tm_year=2019, tm_mon=11, tm_mday=8, tm_hour=15, tm_min=10, tm_sec=35, tm_wday=4, tm_yday=312, tm_isdst=0)

localtime()函数接收一个参数,这个参数是秒。当我们传入秒后,它会自动解析成一个含有9个元素的元祖。 这个元祖表示了对应的时间。

如果不传,就以当前的时间戳作为参数;如果传入了,就解析我们传入的时间戳。

tm_year 年

tm_mon 月

tm_mday 日(本月第几天)

tm_hour 时

tm_min 分

tm_sec 秒

tm_wday (一周的第几日,从0-6,0表示周一)

tm_yday 本年的第几天

tm_isdst是否为夏令时(值为0的时候表示非夏令时;值为1的时候表示是夏令时;值为-1的时候表示不确定是否是夏令时)

DST 是daylight saving time, 意思是:夏令时。

 

访问具体的值。

 

所以区别时间的三种格式很重要。

时间戳形式的时间:time.time()

格式化形式的时间:time.strftime()

struct_time形式的时间:time.localtime()或time.gmtime()

 

下图是三种格式的相互转化关系图。

struct_time是作为中间桥梁,在关联着format string和timestamp。

time.localtime(sec),返回time.struct_time(),是一个元祖。

time.gmtime(sec),返回time.struct_time(),是一个元祖,只不过是UTC时区的。

time.mktime(tuple),返回floating point number。

 

time.strftime(format[, tuple]),返回string。

time.strptime(string, format) ,返回struct_time。

 

time.asctime([tuple]),将一个时间元祖转化为string。

time.ctime(seconds),将一个时间戳转化为string。

这7种方式,在上面的图中都解释了关系。

我们在实际使用方法时,pycharm是会提示参数类型的,比如localtime需要传递秒,mktime需要传递tuple,这样我们一看就能知道了。

 

random.random() 返回的数字在 [0, 1)的范围内。左包右开

random.uniform(a, b),返回的浮点数字在[a, b)或[a, b]的范围内,右边是否关闭是根据四舍五入的规则来。但目前[a, b]这种情况没有通过,只看到[a, b)。

random.randint(a, b),返回整数,包含a和b,也就是大于等于a,小于等于b。

random.randrange(start, stop, step)

首先根据start, stop, step,将我们的范围挑选出来。比如上面的[1, 10, 2],从1开始,到10结束。含1不含10,步长为2,则得出的结果为[1, 3, 5, 7, 9]。

最后在这个结果中随机挑选一个。 

 

random.choice([a, b, c, d]),从列表中随意选出一个。

random.sample([a, b, c, d], 2),从列表中随机挑选2个元素,组成新的列表,然后返回。组成的新列表可能为[a, c],也可能为[d, b],也就是先后无序。

 

打乱顺序,就是洗牌。

 

很抱歉,图中的写法错了,curdir是一个属性,不是一个方法,所以不能加(),会报错。print(os.curdir),返回的是  '.',同理,pardir也是属性,返回的是    '..'。

 

os.makedirs('dir1/dir2/dir3/dir4'),用于递归创建目录(假设这四个目录都不存在,该命令能一次性创建这些目录)

如果我们运行第二次,则会报错。因为目录已经存在了,再次创建会报错,为了避免报错,需要添加参数:

os.makedirs('dir1/dir2/dir3/dir4', exist_ok=True)

另外注意,exist_ok是python3中的,python2中没有这个选项。

还可以指定目录权限:

os.makedirs('dir1/dir2/dir3/dir4', mode=777, exist_ok=True)

我们可以测试,在不传递mode时,创建的目录权限为什么;传递mode后,目录权限为什么。

默认的权限是755,但问题是当我们创建其他权限时,不管用。尝试创建777或者555的权限时,发现实际创建的目录权限很异常。

 

os.removedirs('')删除目录时,实际调用的是rmdir。会有一个问题,就是无法删除非空目录。如果一个目录中有文件或者目录,则删除会报错。

因为在linux上的rmdir只能删除空目录。所以我上图中的说法错误。

 

os.listdirs('test1'),列出目录test1下的一级目录,比如有test1/test2,test1/test2/test3,test1/test4,则listdirs()会打印出['test1', 'test4'],因为只有test2和test4是一级目录

 

 

 

 

 

 

posted @ 2019-11-02 17:24  道霖  阅读(189)  评论(0)    收藏  举报