time模块,random模块,OS模块,sys模块

time模块

在这里插入图片描述

时间展示

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.gmtime())         #结构化时间英国时间
#时间戳和格式化时间都是依赖于结构化时间
p = time.strptime('2018-6-16', '%Y-%m-%d')

输出:
在这里插入图片描述

时间转换

import time
print(time.gmtime(1500000000)) #时间戳-->结构化时间
print(time.localtime(1500000))

#结构化时间-->时间戳 
time_tuple = time.localtime(15000000)
print(time.mktime(time_tuple))

#结构化时间-->字符串时间
print(time.strftime("%Y-%m-%d %x"))
print(time.strftime("%Y-%m-%d ", time.localtime(1800000000)))

#字符串时间-->结构化时间
print(time.strptime("2018-10-17", "%Y-%m-%d"))
print(time.strptime("01/01/2018", "%m/%d/%Y"))

#结构化时间 --> %a %b %d %H:%M:%S %Y串
time.asctime(结构化时间) 如果不传参数,直接返回当前时间的格式化串
print(time.asctime(time.localtime(150000000)))
print(time.asctime())

#时间戳 --> %a %b %d %H:%M:%S %Y串
time.ctime(时间戳)  如果不传参数,直接返回当前时间的格式化串
print(time.ctime())
print(time.ctime(18000000))

python中的日期时间格式符号
1 %y 两位数的年份表示(00-99)
2 %Y 四位数的年份表示(000-9999)
3 %m 月份(01-12)
4 %d 月内中的一天(0-31)
5 %H 24小时制小时数(0-23)
6 %I 12小时制小时数(01-12)
7 %M 分钟数(00=59)
8 %S 秒(00-59)
9 %a 本地简化星期名称
10 %A 本地完整星期名称
11 %b 本地简化的月份名称
12 %B 本地完整的月份名称
13 %c 本地相应的日期表示和时间表示
14 %j 年内的一天(001-366)
15 %p 本地A.M.或P.M.的等价符
16 %U 一年中的星期数(00-53)星期天为星期的开始
17 %w 星期(0-6),星期天为星期的开始
18 %W 一年中的星期数(00-53)星期一为星期的开始
19 %x 本地相应的日期表示
20 %X 本地相应的时间表示
21 %Z 当前时区的名称
22 %% %号本身
在这里插入图片描述
在这里插入图片描述

利用time计算时间差

import time
def cal_time(fmt_time, fmt):
    now = time.time()
    time_before = time.mktime(time.strptime(fmt_time, fmt))
    sub_time = now - time_before
    struct_time = time.gmtime(sub_time)
    return '过去了%d年%d月%d天%d小时%d分钟%d秒' % (struct_time.tm_year - 1970, struct_time.tm_mon - 1,
                                        struct_time.tm_mday - 1, struct_time.tm_hour,
                                        struct_time.tm_min, struct_time.tm_sec)
ret = cal_time('2018-8-17 08:30:00', '%Y-%m-%d %H:%M:%S')

print(ret)

random模块

import random
#随机小数
print(random.random())   # 大于0且小于1之间的小数
print(random.uniform(1, 4))  #大于1小于4的小数

#随机整数
print(random.randrange(1, 2))
print(random.randint(1, 1000))    # 大于等于1且小于等于1000之间的整数
print(random.randrange(1, 20, 2))       # 大于等于1且小于10之间的奇数

#随机选择一个返回
print(random.choice([1, '23', [4, 5]]))  #1或者23或者[4,5]

随机选择多个返回
print(random.sample([1, '23', [4, 5]], 2))  #随机选择多个返回,返回的个数为函数的第二个参数


#打乱列表顺序
item = [1, 3, 5, 7, 9]
random.shuffle(item)  #打乱次序
print(item)

基于random的验证码例子

def v_code():
    code = ''
    for i in range(5):
        num = random.randint(0, 9)
        alf = chr(random.randint(65, 90))
        add = random.choice([num, alf])
        code = "".join([code, str(add)])
    return code
print(v_code())

OS模块

在这里插入图片描述

os.path

在这里插入图片描述
例子

import os
print(os.getcwd())      # 获取当前文件所在的路径
print(os.curdir)
print(os.pardir)
os.chdir("D:\\")
os.makedirs('dirname1/dirname2')        #创建多级目录文件
os.mkdir('dirname/son_dir')             #创建单级目录文件
os.removedirs('dirname1/d2')
print(os.listdir('D:\myPython'))
os.remove()#删除一个文件
print(os.stat(r'D:\myPython'))

print(os.name)
path = 'python%2.mok.py'%os.sep
os.system("dir")
ret = os.popen("dir").read()
print(ret)

print(os.path .abspath('userinfo') ) #绝对路径

print(os.path.abspath('userinfo'))
print(os.path.split(os.path.abspath('userinfo')))
print(os.path.dirname(os.path.abspath('userinfo')))
print(os.path.basename(os.path.abspath('userinfo')))
print(os.path.exists(r'D:\python11\day28\userinfo2'))
print(os.path.isabs(r'userinfo2'))
print(os.path.isfile(r'userinfo'))
print(os.path.isdir(r'dirname1'))
print(os.path.join('D:\\python11\\day28','userinfo'))
print(os.path.getsize(r'D:\python11'))
print(os.path.getsize(r'D:\python'))

os.stat(‘path\filename’) 获取文件\目录信息的结构说明

stat 结构:
 
st_mode: inode 保护模式
st_ino: inode 节点号。
st_dev: inode 驻留的设备。
st_nlink: inode 的链接数。
st_uid: 所有者的用户ID。
st_gid: 所有者的组ID。
st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
st_atime: 上次访问的时间。
st_mtime: 最后一次修改的时间。
st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,<br>在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。
 

找一个别人的例子

import os
# 1.切换路径=============
d = os.getcwd()  #获取当前的工作路径
os.chdir('D:\\')#目录的切换
print(os.getcwd())
# (切换过去怎么回来呢?再chdir一下就回来了)
os.chdir(d)
print(os.getcwd())

# 2.执行系统命令=============
# system和popen都是执行系统命令的,但是popen比较好用,因为它有返回值
os.system('dir') #显示的是gbk的编码,
# 解决system乱码的方法
ret = os.popen('dir')  #popen是有返回值的,而且自己转码了
print(ret.read())

# 3.创建文件夹=和创建文件==========
os.mkdir('temp')  #生成一个文件夹,,只能生成一个
os.mkdir(r'temp2\inner')  #这样就报错了
os.makedirs(r'temp1\inner',exist_ok=True)  #创建多级目录
os.makedirs(r'temp1\inner\inner2',exist_ok=True)  #创建多级目录
# 那么如果文件夹已经存在了,就报错了,那我如果不想
# 让报错(就是假如存在,就不创建也不报错),那么就加上exist_ok=True

# 创建文件
f = open(r'temp1\inner\file','w')
f.close()

# 4.======重命名文件夹=====
os.rename(r'temp1\inner\inner2','temp1\inner\haiyan')

# 5.=====删除文件夹和删除文件=========
# 先删文件,
os.remove(r'temp1\inner\file')
# 再删文件夹
os.removedirs(r'temp1\inner\haiyan') #删除一个文件夹的时候,如果上一级的文件夹是空的,就一并删除了。以此类推
os.rmdir((r'temp1\inner') )#只删除一个文件夹

# 6.子目录========
print(os.listdir(os.getcwd())) #打印当前目录下的目录
print(os.walk(os.getcwd())) #<generator object walk at 0x00000000021C6728>
ret = os.walk(os.getcwd()) #拿到的东西比较多,如果你关心子目录下的东西,就用walk
print(list(ret))


# 7.====获取文件或者目录的信息的结构说明========
print(os.stat('temp'))
# st_atime:上次访问的时间
# st_mtime:最后一次修改的时间
# st_ctime:最新的更新时间
print(os.sep) # 打印的是\
print(os.getcwd())
file_path = '%s%s%s'%(os.getcwd(),os.sep,'filename')  #拼接一个路径(方式一)
print(file_path)
print(os.path.join(os.getcwd(),'filename'))#拼接一个路径(方式二)

# 8.====字符串指示当前使用平台
print(os.name) #如果是win,则打印的是nt  如果是,linux,打印poxis
# 应用场景:当你输入命令的时候,要判断是win系统还是 linux系统。就可以用
# os.name去判断了

# 9.===获取系统环境变量=====
print(os.environ)

# 10.路径相关的=======
print(os.path.abspath('namedtuple.py'))
print(os.path.dirname(os.path.abspath('namedtuple.py')))
print(os.path.dirname(os.path.dirname(os.path.abspath('namedtuple.py'))))
print(os.path.exists(os.path.abspath('namedtuple.py')))

sys模块

sys模块是与python解释器交互的一个接口

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

例子:

import sys
print(sys.argv) #实现从程序外部向程序传递参数。(在命令行里面输打开路径执行)
name=sys.argv[1] #命令行参数List,第一个元素是程序的本身路径
password = sys.argv[2]
if name=='egon' and password == '123':
    print('继续执行程序')
else:
   exit()

sys.exit()#退出程序,正常退出时exit(0)
print(sys.version)#获取python解释的版本信息
print(sys.maxsize)#最大能表示的数,与系统多少位有关
print(sys.path)#返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
print(sys.platform)#返回操作系统平台名称
print(sys.argv) #['D:/myPython/sys模块.py']列表。当前文件的文件路径
#执行一个程序有两种方法:(1)debug执行;(2)直接执行
import logging
inp = sys.argv[1] if len(sys.argv) > 1 else 'warning'
logging.basicConfig(level=getattr(logging, 'DEBUG'))
num = (input(">>>"))
logging.debug(num)
a = num * 100
logging.debug(a)
b = a - 10
logging.debug(b)
c = b + 5
print(c)

猜你喜欢

转载自blog.csdn.net/qq_38362416/article/details/83958163