一、异常处理
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 jsondef 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这个文件,模块是可以被其他文件跨目录调用的,而目录则不可以
原文地址:https://www.cnblogs.com/Jweiqing/p/8922591.html