Python 模块学习(一)

一、时间模块

import time          # 模块调用语句   注意:模块级导入一般放在文件顶部
import datetime

print(time.time())    # 1550411181.441547: 时间戳
time.sleep(3)         # CPU不工作,停止3秒
print(time.clock())   # 7.331190182070108e-07   计算CPU工作的时间

print(time.gmtime())    # UTC世界标准时间(英国):time.struct_time(tm_year=2019, tm_mon=2,
# tm_mday=17, tm_hour=13, tm_min=54, tm_sec=45, tm_wday=6, tm_yday=48, tm_isdst=0)

print(time.localtime())   # 本地时间:time.struct_time(tm_year=2019, tm_mon=2, tm_mday=17,
# tm_hour=21, tm_min=59, tm_sec=18, tm_wday=6, tm_yday=48, tm_isdst=0)

print(time.strftime('%Y-%m-%d  %H:%M:%S'))   # (重要)字符串(格式化)时间:2019-02-17  22:03:39

print(time.strptime('2019-02-17  22:03:39', '%Y-%m-%d  %H:%M:%S'))   # 时间结构的转换,输出见下行:
# time.struct_time(tm_year=2019,tm_mon=2,tm_mday=17,tm_hour=22,tm_min=3,tm_sec=39,tm_wday=6,tm_yday=48,tm_isdst=-1
)

# 单独提取某个时间类型
a = time.strptime('2019-02-17  22:03:39', '%Y-%m-%d  %H:%M:%S')
print(a.tm_year)    # 年 2019
print(a.tm_mon)     # 月 2
print(a.tm_mday)    # 日 17
print(a.tm_hour)    # 时 22
print(a.tm_min)     # 分 3
print(a.tm_sec)     # 秒 39
print(a.tm_yday)    # 一年的第多少天 48
print(a.tm_wday)    # 一周的第多少天 6

print(time.ctime())   # 默认为空  打印当前时间:Sun Feb 17 22:18:13 2019
print(time.ctime(3600))  # 把一个数转换为时间  从1970年开始计算
print(time.mktime(time.localtime()))   # 把当前时间转换为时间戳:1550413367.0

print(datetime.datetime.now())   # 打印当前时间,友好表达方式:2019-02-28 14:33:37.570078

二、随机数模块

import random

print(random.random())          # 生成一个0-1的随机数
print(random.randint(1, 8))       # 随机生成一个1-8之间的随机整数(包括8)
print(random.choice('sadasfga'))      # 随机取出字符串中的一个字母
print(random.sample('asfafaffgh', 2))      # 从一个序列里面随机取出两个
print(random.randrange(1, 3))        # 1-3随机取出一个,不包括3

例:随机生成一个5位数的验证码,包含数字和字母

def v_code():
    code = ''
    for i in range(5):
        if i == random.randint(0, 3):
            add = random.randrange(10)   # 0-9随机取出一个数
        else:
            add = random.randrange(65, 90)   # 26个字母的ASCII值是65-90
            add = chr(add)  # 把ASCII转换为字母

        code += str(add)  # 字符串拼接

    print(code)

法二:比上述方法更加简单

def v_code():
    code = ''
    for i in range(5):
        add = random.choice([random.randrange(10), chr(random.randrange(65, 90))])
        code += str(add)   # 字符串拼接

    print(code)

v_code()

三、hashlib 加密模块

import hashlib   # 两种方法:MD5和SHA两种加密方法 不可逆结果

# MD5 算法
m = hashlib.md5()

m.update('hello world'.encode('utf8'))   # python3 默认utf8编码
print(m.hexdigest())   # 获取加密结果(16进制):5eb63bbbe01eeed093cb22bb8f5acdc3

m.update('long'.encode('utf8'))
print(m.hexdigest())   # 7e5181dfabb9edf08a7075a8c18b0343  在前一次转换的基础上进行转换,相当于对'hello worldlong'进行转换

m2 = hashlib.md5()
m2.update('hello worldlong'.encode('utf8'))
print(m2.hexdigest())   # 7e5181dfabb9edf08a7075a8c18b0343


# SHA 算法
m = hashlib.sha256()
m.update('hello world'.encode('utf8'))
print(m.hexdigest())   # 算法更复杂:b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

四、sys模块

1.解释器进行交互:通过传入的参数决定程序执行那段代码

import sys      # 解释器进行交互

print(sys.argv)    # 输出的当前路径

def post():
    print('ok')

def download():
    pass

if sys.argv[1] == 'post':
    post()
elif sys.argv[1] == 'downlod':
    download()

打开电脑cmd,在文件路径下用python执行该程序

image

输出列表,列表的第一个元素存的是文件名,可以在“python sys模块.py” 后面加参数控制程序的执行:

image

注意:一般情况参数越多程序越灵活

2.常见使用:

import sys

sys.exit(0)  # 退出程序,可以加参数,正常退出是exit(0)

print(sys.platform)   # win32  返回windows的平台,可以做跨平台的判断
print(sys.version)   # 获取python解释器的当前版本信息
print(sys.path)    # 返回模块的搜索路径,初始化时使用pythonpath环境变量的值
print(sys.platform)     # 返回操作平台名称:win32
print(sys.path.append()) # 路径添加,如果要使用的模块不在python里,在另外的文件下,就需要添加绝对路径
posted @ 2019-02-28 15:25  自动变量  阅读(281)  评论(0编辑  收藏  举报