zoukankan      html  css  js  c++  java
  • 异常处理与内建模块

    一、异常处理

    1.1、异常常用格式

    try:      #try接代码块,如果代码正常则不执行except块
    print(2/0)
    except Exception as e:   #except捕获异常,Exception指所有异常
    print("除数不能为0")
    raise e #抛出异常
    finally:          #finally不管有没有异常都会执行,这个按照需要使用
    print("不管有没有发生异常,都得执行这个")

    1.2、rest接口(定义显示异常的详细信息)

    import json
    def rest():
    result = dict()    #rest以字典形式展现
    try:
    print(2/0)
    except Exception as e:
    result["msg"] = "除数不能为0"
    result["code"] = 403
    result["data"] = [{"a":1}, {"b":2}]
    finally:
    return json.dumps(result)
    if __name__ == '__main__':
    print(rest())
    输出:
    {'msg': '除数不能为0', 'code': 403, 'data': [{'a': 1}, {'b': 2}]}

    二、内建模块

    Python之所以自称“batteries included”,就是因为内置了许多非常有用的模块,无需额外安装和配置,即可直接使用。

    2.1、datetime模块

    datetime是Python处理日期和时间的标准库

    ①、获取当前时间:

    from datetime import datetime

    now = datetime.now()
    print(now)

    注意到datetime是模块,datetime模块还包含一个datetime类,通过from datetime import datetime导入的才是datetime这个类。

    如果仅导入import datetime,则必须引用全名datetime.datetime

    datetime.now()返回当前日期和时间,其类型是datetime

    ②、获取固定的参数

    from datetime import datetime, timedelta

    print(datetime.now().year) #年
    print(datetime.now().month) #月
    print(datetime.now().day) #日
    print(datetime.now().hour) #时
    print(datetime.now().minute) #分
    print(datetime.now().second) #秒
    print(datetime.now().microsecond) #毫秒
    print(datetime.now().strftime("%Y-%m-%d")) #固定格式的年月日,是由时间转换为字符串格式
    print(datetime.now().strptime("2018-04-22", "%Y-%m-%d")) #将"2018-04-22"这个字符串转化为时间类型

    %Y 带世纪部分的十制年份;
    %m 十进制表示的月份;
    %d 十进制表示的每月的第几天;
    %H 24小时制的小时;
    %M 十进制表示的分钟数;
    %S 十进制的秒数;
    %c 标准时间,如:04/25/17 14:35:14,;
    %a 本地简化星期名称;
    %b 本地简化月份名称;
    %d 一个月中的第几天(01-31)

    ③、在当前时间上面做增减

    对日期和时间进行加减实际上就是把datetime往后或往前计算,得到新的datetime。加减可以直接用+-运算符,不过需要导入timedelta这个类:

    from datetime import datetime, timedelta

    now = datetime.now()
    print(now - timedelta(weeks=1))   #只能限制在星期、天数和小时数上增减
    print(now - timedelta(days=1)) #只能限制在星期、天数和小时数上增减
    print(now - timedelta(hours=1)) #只能限制在星期、天数和小时数上增减

    2.2、time模块

    ①、间隔多久后执行

    import time

    time.sleep(5) #以秒数计算
    print("hello")

    ②、时间戳(从1970-01-01开始到现在的秒数)

    import time

    print(time.time())

    2.3、commands模块(调用linux系统命令,这是linux下面独有的模块,而通用的的是subprocess模块)

    ①、commands.getoutput(cmd)  返回结果为cmd命令执行完的结果

    ②、status,output = commands.getstatusoutput(cmd)          commands.getstatusoutput(cmd)的返回结果就是一个tuple,第一个值得shell执行的结果,如果shell执行成功,返回0,否则为非0,第二个是一个字符串,就是我们shell命令的执行结果,python通过一一对应的方式复制给status和output,就是这个python语言的巧妙之处

    ③、示例

    In [5]: commands.getoutput("ifconfig | grep eth")
    Out[5]: 'eth1      Link encap:Ethernet  HWaddr 00:50:56:88:53:53  '

    In [6]: commands.getstatusoutput("ifconfig | grep eth")
    Out[6]: (0, 'eth1      Link encap:Ethernet  HWaddr 00:50:56:88:53:53  ')

    三、模块和目录的区别

    看是否是模块主要是看目录里面有没有__init__.py这个文件,模块是可以被其他文件跨目录调用的,而目录则不可以

  • 相关阅读:
    Tomcat全攻略
    JAVA必备——13个核心规范
    利用Node.js实现模拟Session验证的登陆
    Android中关于JNI 的学习(六)JNI中注冊方法的实现
    pomelo源代码分析(一)
    怎样解决栈溢出
    String,StringBuffer与StringBuilder的差别??
    ERWin 7.1 和7.2 的官方FTP下载地址
    C/C++中各种类型int、long、double、char表示范围(最大最小值)
    下拉刷新,上拉装载许多其他ListView
  • 原文地址:https://www.cnblogs.com/Jweiqing/p/8922591.html
Copyright © 2011-2022 走看看