zoukankan      html  css  js  c++  java
  • time random sys os模块

    一:time模块

    1,记录时间有三种格式

    import time
    # 时间戳时间
    print(time.time())   # 时间戳时间   # 计算时间差  精准的运算
    #格式化时间
    print(time.strftime('%Y-%m-%d %H:%M:%S'))# 字符串格式化时间   # 记录下来给人看
    print(time.strftime('%y-%m-%d'))# 字符串格式化时间
    print(time.strftime('%x %X'))# 字符串格式化时间
    print(time.strftime('%c'))# 字符串格式化时间
    #结构化时间
    print(time.localtime())# 本地结构化时间                                                                                           #  对应项的简单计算
    print(time.gmtime())   # 英国的结构化时间
    三种时间显示
    %y 两位数的年份表示(00-99%Y 四位数的年份表示(000-9999%m 月份(01-12%d 月内中的一天(0-31%H 24小时制小时数(0-23%I 12小时制小时数(01-12%M 分钟数(00=59%S 秒(00-59%a 本地简化星期名称
    %A 本地完整星期名称
    %b 本地简化的月份名称
    %B 本地完整的月份名称
    %c 本地相应的日期表示和时间表示
    %j 年内的一天(001-366%p 本地A.M.或P.M.的等价符
    %U 一年中的星期数(00-53)星期天为星期的开始
    %w 星期(0-6),星期天为星期的开始
    %W 一年中的星期数(00-53)星期一为星期的开始
    %x 本地相应的日期表示
    %X 本地相应的时间表示
    %Z 当前时区的名称
    %% %号本身
    python中时间日期格式化符号
    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-4-23 10:30:20','%Y-%m-%d %H:%M:%S')  #过去了0年0月2天0小时38分钟35秒
    print(ret)
    计算时间相差

    2,几种时间格式的相互转换

    p = time.strptime('2015-8-8','%Y-%m-%d') #格式化时间---->结构化时间
    print(p)
    print(time.mktime(p))  #结构化时间----->时间戳时间
    print(time.time()-time.mktime(p))
    时间格式的转换

    二:random模块

    >>> import random
    #随机小数
    >>> random.random()      # 大于0且小于1之间的小数
    0.7664338663654585
    >>> random.uniform(1,3) #大于1小于3的小数
    1.6270147180533838
    #恒富:发红包
    
    #随机整数
    >>> random.randint(1,5)  # 大于等于1且小于等于5之间的整数
    >>> random.randrange(1,10,2) # 大于等于1且小于10之间的奇数
    
    
    #随机选择一个返回
    >>> random.choice([1,'23',[4,5]])  # #1或者23或者[4,5]
    #随机选择多个返回,返回的个数为函数的第二个参数
    >>> random.sample([1,'23',[4,5]],2) # #列表元素任意2个组合
    [[4, 5], '23']
    
    
    #打乱列表顺序
    >>> item=[1,3,5,7,9]
    >>> random.shuffle(item) # 打乱次序
    >>> item
    [5, 1, 3, 7, 9]
    >>> random.shuffle(item)
    >>> item
    [5, 9, 7, 1, 3]
    View Code
    #生成6位数字验证码 数字可以重复
    import random
    def id_code(num):
        ret = ''
        for i in range(num):
            n = random.randint(0,9)
            ret += str(n)
        return ret
    print(id_code(6))
    
    # num 大写字母 小写字母在每一位被取到的概率相同
    def id_code(num):
        ret = ''
        for i in range(num):
            number = str(random.randint(0,9))
            alph_num = random.randint(97,122)   # A65 a97 +25
            alph_num2 = random.randint(65,90)   # A65 a97 +25
            alph = chr(alph_num)
            alph2 = chr(alph_num2)
            choice = random.choice([number,alph,alph2])
            ret += choice
        return ret
    print(id_code(6))
    
    # num,字母在每一位被取到的概率相同
    def id_code(num):  
        ret = ''
        for i in range(num):
            number = str(random.randint(0,9))
            alph_num = random.randint(97,122)   # A65 a97 +25
            alph_num2 = random.randint(65,90)   # A65 a97 +25
            alph = chr(alph_num)
            alph2 = chr(alph_num2)
            choice = random.choice([alph,alph2])
            choice = random.choice([number,choice])
            ret += choice
        return ret
    print(id_code(6))
    生成随机验证码

    三: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)   # 列表 列表的第一项是当前文件所在的路径
    if sys.argv[1] == 'alex' and sys.argv[2] == '3714':
        print('登陆成功')
    else:
        sys.exit()
    View Code
    import sys
    import logging
    inp = sys.argv[1] if len(sys.argv)>1 else 'WARNING'
    logging.basicConfig(level=getattr(logging,inp))  # DEBUG
    num = int(input('>>>'))
    logging.debug(num)
    a = num * 100
    logging.debug(a)
    b = a - 10
    logging.debug(b)
    c = b + 5
    print(c)
    在cmd窗口查看debug信息

    四:os 模块

     os模块是与操作系统交互的一个接口

    import os
    # print(os.getcwd())   # 获取当前文件所在的路径
    #os.makedirs('name1/name2')  # 一次创建多级目录文件夹
    #os.mkdir('name/11')      # 一次创建单级目录文件夹
    #os.rmdir('name1/name2') #删除name1中的name2文件夹,前提是name2文件夹为空才能删除
    #os.removedirs('name1/name2') #删除name1和name2文件夹,但必须当name2文件夹为空时才能删除
    
    #print(os.listdir('G:python')) #以一个列表的形式打印该目录下的所有文件夹
    
    #print(os.stat(r'G:python
    ew2.py'))  #获取当前目录下的文件信息(访问时间,修改时间等)
    
    # path = 'python%s2.mok.py'%os.sep  # 输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"
    # print(path)
    
    #print(os.environ)  #获取当前系统的所有环境变量
    
    # path系列
    print(os.path.abspath('userinfo'))
    # 获取文件的绝对路径 G:pythonuserinfo
    print(os.path.dirname(os.path.abspath('userinfo')))
    #获取该文件的上一级目录  G:python
    print(os.path.split(os.path.abspath('userinfo')))
    #将path分割成目录和文件名,以元组形式返回
    print(os.path.exists(r'D:python11day28userinfo'))
    #查看某个path是否存在(r表示取消path里所有的转译)
    print(os.path.isabs(r'userinfo2'))
    #判断某个路径是否是绝对路径
    print(os.path.isfile(r'userinfo'))
    #判断是否是文件
    print(os.path.isdir(r'name1'))
    #判断是否是文件夹
    print(os.path.join('D:\python11\day28','userinfo'))
    #将多个路径拼接后返回
    print(os.path.getsize(r'D:python11'))
    #返回某一个文件的大小(对于文件夹只返回4096)
    View Code

      

      

  • 相关阅读:
    sipp如何避免dead call
    6174问题
    笨小熊
    scanf 与 cin 的区别
    谁获得了最高奖学金
    _int64、long long 的区别
    小光棍数
    简单排序法
    La=LaULb (循环链表)
    删除重复的数(顺序有序表)
  • 原文地址:https://www.cnblogs.com/leiwei123/p/8934844.html
Copyright © 2011-2022 走看看