zoukankan      html  css  js  c++  java
  • 常用模块

    时间模块    time

    import time
    time.time()
    print(time.time())  #时间戳   1554879802.0031486  是数据的唯一标识
    print('start')
    time.sleep(2)
    print('stop')
    print(time.localtime())  #当下时间
    time.struct_time(tm_year=2019, tm_mon=4, tm_mday=10, tm_hour=15, tm_min=3, tm_sec=22, tm_wday=2, tm_yday=100, tm_isdst=0)
    print(time.gmtime())  #格林威治时间
    time.struct_time(tm_year=2019, tm_mon=4, tm_mday=10, tm_hour=7, tm_min=3, tm_sec=22, tm_wday=2, tm_yday=100, tm_isdst=0)
    print(time.strftime('%Y-%m-%d'))  #完整的年月日  2019-04-10
    print(time.strftime('%Y'))  #完整的年份   2019
    print(time.strftime('%y'))  #两位数的年份  19
    print(time.strftime('%m'))  #月份(01-12)    04
    print(time.strftime('%d'))  #日期(01-31   10
    print(time.strftime('%H'))  #24小时制的小时数(00-24)    15
    print(time.strftime('%I'))  #12小时制的小时数(01-12)   03
    print(time.strftime('%M'))  #分(00-59)   08
    print(time.strftime('%S'))  #秒(00-59)   48
    print(time.strftime('%a'))  #本地星期简化名称   Wed
    print(time.strftime('%A'))  #本地完整星期名称   Wednesday
    print(time.strftime('%B'))  #本地完整月份名称   April
    print(time.strftime('%b'))  #本地简化月份名称   Apr
    print(time.strftime('%c'))  #本地相应的日期和时间   Wed Apr 10 15:08:48 2019
    print(time.strftime('%j'))  #一年中的第几天   100
    print(time.strftime('%p'))  #上午或者下午   PM
    print(time.strftime('%u'))  #星期几   3
    print(time.strftime('%w'))  #星期几   3
    print(time.strftime('%W'))  #一年中的星期数(00-53)星期一为星期的开始    14
    print(time.strftime('%x'))  #当地相对应的日期表示    04/10/19
    print(time.strftime('%X'))  #本地相对应的时间表示    15:08:48
    print(time.strftime('%z'))  #当前时区的名称   +0800
    格式化时间q=(2020, 4, 10, 10, 19, 22, 2, 200, 0)
    print(time.strftime('%Y-%m-%d %j %H days', q))

    自己写一个判断是否为闰年

    直接被400整除,可以被4整除但是不能被100整除
    year1 = int(input('year:'))
    d1 = year1 % 400 == 0
    d2 = year1 % 4 == 0 and year1 % 100 != 0
    if d1 or d2:
        print('')
    else:
        print('不是 ')

    日历模块:  calendar

    import calendar
    print(calendar.isleap(2003))  # 判断是否为闰年   True或者False
    print(calendar.month(2019,4))  #查看某年某月日历
    April 2019
    Mo Tu We Th Fr Sa Su
     1  2  3  4  5  6  7
     8  9 10 11 12 13 14
    15 16 17 18 19 20 21
    22 23 24 25 26 27 28
    29 30
    print(calendar.monthrange(2019,3))   #查看某年某月起始星期几与当月的天数    (4, 31)
    print(calendar.weekday(2019,5,1))   #查看某年某月某日是星几   2

    可以运算的时间   datatime

    import  datetime
    print(datetime.datetime.now())   #当前时间   2019-04-10 15:46:41.892413
    print(datetime.datetime.now() + datetime.timedelta(hours=-2))   #以前的时间   2019-04-10 13:48:46.498839
    # datetime.timedelta(days=-1)  ()里的就是你想加减去的时间
    print(datetime.datetime.now().replace(year=2020,hour=19))   #修改的时间
    # 2020-04-10 19:57:45.468183
    print(datetime.date.fromtimestamp(12321231))  #格式化的时间
    1970-05-23

    系统: sys

    import sys
    print(sys.argv)  #命令行参数list,第一个元素是程序本身路径
    ['D:/pycharm/脱产七期/day  17  4.10  常见模块/常见模块练习.py']
    
    print(sys.exit()) #退出程序
    print(sys.version)   #Python解释器的版本信息
    3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)]
    print(sys.maxsize)   #获取最大int值  9223372036854775807
    print(sys.path)   #环境变量
    ['D:\pycharm\脱产七期\day  17  4.10  常见模块', 'D:\pycharm\脱产七期', 'C:\Python36\python36.zip', 'C:\Python36\DLLs', 'C:\Python36\lib', 'C:\Python36', 'C:\Python36\lib\site-packages', 'D:\PyCharm 2018.3.5\helpers\pycharm_matplotlib_backend']
    print(sys.platform)  #操作系统平台名称   win32

    操作系统 :os

    import os
    print(os.mkdir('qqqq'))  #生成单级目录
    print(os.makedirs('qqq/www/eee'))   #生成多级目录
    print(os.rename('eee','rrr'))   #文件重命名
    print(os.getcwd())   #工作目录   D:pycharm脱产七期day  17  4.10  常见模块
    print(os.rmdir('qqqq'))   #删除单层目录
    print(os.removedirs('qqq/www/eee'))   #删除多层目录
    print(os.listdir('qqq'))    #列举目录下所有资源  ['www']
    print(os.sep)   #路径分隔符  
    print(os.linesep)    #行终止符
    print(os.pathsep)    #文件分隔符   ;
    print(os.name)    #操作系统名   nt
    print(os.environ)   #操作系统环境变量
    print(os.system())    #执行shell脚本

    系统路径操作 os.path

    import os.path
    print(__file__)    #执行文件的当前路径   D:/pycharm/脱产七期/day  17  4.10  常见模块/常见模块练习.py
    print(os.path.abspath('D:pycharm脱产七期day  17  4.10  常见模块'))   #返回path规范化的绝对路径   D:pycharm脱产七期day  17  4.10  常见模块
    print(os.path.split('D:pycharm脱产七期day  17  4.10  常见模块'))  #将path分割成目录和文件名二元组返回   ('D:\pycharm\脱产七期', 'day  17  4.10  常见模块')
    print(os.path.dirname('D:pycharm脱产七期day  17  4.10  常见模块'))   #上一级目录   D:pycharm脱产七期
    print(os.path.basename('D:pycharm脱产七期day  17  4.10  常见模块'))   #最后一级名称    day  17  4.10  常见模块
    print(os.path.exists('D:pycharm脱产七期day  17  4.10  常见模块'))  #指定路径是否存在   True
    print(os.path.isabs('D:pycharm脱产七期day  17  4.10  常见模块'))    #是否是绝对路径   True
    print(os.path.isfile('D:pycharm脱产七期day  17  4.10  常见模块'))   #是否是文件   False
    print(os.path.isdir('D:pycharm脱产七期day  17  4.10  常见模块'))   #是否是路径   True
    print(os.path.join(path1[, path2[, ...]]))   #路径拼接
    print(os.path.getatime('D:pycharm脱产七期day  17  4.10  常见模块'))  #最后存取时间   1554885847.2432308
    print(os.path.getmtime('D:pycharm脱产七期day  17  4.10  常见模块'))   #最后修改时间   1554885847.2432308
    print(os.path.getsize('D:pycharm脱产七期day  17  4.10  常见模块'))   #目标大小  0

    序列化    json

    import json
    json:{} 与 [] 嵌套的数据
    注意:json中的字符串必须全部用""来标识
    dic = {
        'a': 1,
        'b': [1, 2, 3, 4, 5]
    }
    序列化: 将python的字典转化为字符串传递给其他语言或保存
    json_dumps=json.dumps(dic)
    print(json_dumps)  #序列化转化字符串   {"a": 1, "b": [1, 2, 3, 4, 5]}
    with open('zzz','w',encoding='utf-8') as w:
        w.write(json_dumps)  #将序列化字符串写到文件中
    
    
    
    字符形式操作
    反序列化成对象
    json_dumps='''{"a": 1, "b": [1, 2, 3, 4, 5]}'''
    json_str=json.loads(json_dumps)
    print(json_str)
    从文件中反序列化成对象
    with open('zzz','r',encoding='utf-8') as r:
        res=json.load(r)
        print(res)

    序列化   pickle

    import pickle
    dic = {
        'a': 1,
        'b': [1, 2, 3, 4, 5]
    }
    res = pickle.dumps(dic)
    print(res)   #序列化成字符串
    
    with open('xxx', 'wb') as w:
        w.write(res)   #序列化字符串到文件中
    
    字节形式操作
    print(pickle.loads(res))   #反序列化成对象
    
    
    with open('xxx', 'rb') as r:
        print(pickle.load(r))   #从文件中反序列化成对象

     随机数  random

    import random
    print(random.random())   #(0,1)  小数:0.6071058391747245
    print(random.randint(1,10))     #[1,10]   整数: 9
    print(random.randrange(1,10))  #[1,10)   整数:  5
    print(random.uniform(1,10))    #(1,10)   小数:4.281837749353642
    li=[1,2,3,4,5,6,7,8]
    print(random.choice(li))   #单列集合随机选择1个:6
    print(random.sample(li,3))   #单列集合随机选择n个:[4, 7, 5]

     案例:产生指定位数的验证码

    import random
    def random_code(count):
        code=''
        for i in range(count):
            num=random.randint(1,3)  #判断你要验证的是数字,大写之母,小写字母
            if num ==1:
                tag = str(random.randint(0,9))
            elif num ==2:
                tag = chr(random.randint(65,90))  #小写字符的二进制比较
            else:
                tag = chr(random.randint(92,122))   #大写字符的二进制比较
            code+=tag
        return code
    print(random_code(6))   #dWuoba
    View Code

    可以操作权限的文件处理模块  shutil

    import  shutil
    print(shutil.copyfile('ooo.py','iii.py'))   #基于路径的文件复制
    with open('ooo.py','rb')  as  r,open('iii.py','wb')  as  w:
        shutil.copyfileobj(r,w)   #基于流的文件复制
    print(shutil.rmtree('ppp'))   #递归删除目标目录
    print(shutil.move('ooo.py','lll.py'))   #文件移动(类似于重命名)
    print(shutil.make_archive('iii.py','zip','D:pycharm脱产七期day18   4.11常见模块kkkk'))
    print(shutil.unpack_archive('D:pycharm脱产七期day18   4.11常见模块iii.py.zip','ooo.py.zip','zip'))

    可以用字典存取数据到文件的序列化模块    shelve

    import shelve
    s_dic = shelve.open("target.txt")  # 注:writeback=True操作数据会同步写到文件
    序列化::存
    s_dic['key1'] = [1, 2, 3, 4, 5]
    s_dic['key2'] = {'name': 'Bob', 'age': 18}
    s_dic['key3'] = 'abc'
    文件释放
    s_dic.close()
    
    s_dic = shelve.open("target.txt", writeback=True)
    print(s_dic['key1'])
    s_dic['key1'][2] = 30
    print(s_dic['key1'])
    
    print(s_dic['key2'])
    s_dic['key2']['age'] = 300
    print(s_dic['key2'])
    
    print(s_dic['key3'])
    s_dic['key3'] = 'def'
    print(s_dic['key3'])
    s_dic.close()

    标准输入,标准输出,错误流

    import sys
    print(sys.stdout.write('123
    '))  #标准输出   123
    print(sys.stderr.write('错误信息
    '))  #标准错误流   错误信息
    res = sys.stdin.read(3)  #()是你在控制台要输入的字符个数   bdgasf===>bdg
    print(res)  #标准输入
    print默认是对sys.stdout.write('msg') + sys.stdout.write('
    ')的封装
    格式化结束符print:print('msg', end='')
  • 相关阅读:
    Blue的博客
    透明状态栏和沉浸式状态栏
    Html的label和span的区别
    三个石匠的故事
    OpenSSL 生成自定义证书
    github博客配置
    js作用域其二:预解析
    数据分析常用工具总结
    堆排序
    吴裕雄--天生自然 JAVA开发学习: 循环结构
  • 原文地址:https://www.cnblogs.com/wangtenghui/p/10684884.html
Copyright © 2011-2022 走看看