1. 程式人生 > >異常處理、模塊包、時間模塊、subprocess(調用shell命令)

異常處理、模塊包、時間模塊、subprocess(調用shell命令)

模塊

異常處理

捕捉異常可以使用try/except語句。
try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常信息並處理。
如果你不想在異常發生時結束你的程序,只需在try裏捕獲它。

更多的異常關鍵字:
http://www.runoob.com/python/python-exceptions.html

Exception:常規錯誤的基類
IOError:輸入/輸出操作失敗
例子1:寫入信息到tt.txt文件中,如果報錯,就打印錯誤

try:
    with open(‘tt.txt‘) as fd:
        fd.write(‘123\n456‘)
except IOError as t:
    print(‘Error:該文件不存在‘)
else:
    print(‘寫入成功‘)

例子2:
通過json對象返回

import json
def test():
    result = dict()
    try:
        print(2/0)
    except Exception as a:
        result["msg"] = "除數不能為0"
        result["code"] = 403
        result["data"] = [{"a": 1}, {"b": 2}]
    finally:
        print(type(json.dumps(result)))
        json_str=json.dumps(result,ensure_ascii=False)
        return json_str

if __name__ == ‘__main__‘:
    print(test())

模塊包的導入

from 目錄名 import 函數名

調用:
函數名.函數(方法)

新建模塊包:
1、新建一個product_oss 項目目錄

2、新建一個模塊包為test1,裏面多了一個init.py 的空的文件

技術分享圖片

3、在test1 目錄中新建main.py

def add_num(x,y):
return x + y

if name == ‘main‘:
add_num(1,2)

4、在product_oss 目錄下新建 test.py

5、目錄結構如下:

技術分享圖片

6、在test.py 中到導入main.py 的方法

from test1 import main as tt

print(tt.add_num(10,10))

時間模塊

1、導入模塊
from datetime import datetime, timedelta
2、print(datetime.now())
2018-04-28 12:14:21.867118 #年-月-日 小時:分鐘:秒:毫秒

3、顯示年-月-日,小時,分鐘,秒,毫秒
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)

4、顯示年月日-小時-分鐘-秒
print(datetime.now().strftime("%Y-%m-%d_%H:%M:%S"))
2018-04-28_12:17:03

5、後3個小時
In [12]: nowTime = datetime.now()

In [13]: nowTime += timedelta(hours=+3)

In [14]: print(nowTime)
2018-04-28 17:33:19.152888

time模塊
In [15]: import time

時間戳:從1970-01-01 開始,到現在的秒數
In [16]: print(time.time())
1524897275.16

In [17]: print(time.ctime())
Sat Apr 28 14:35:14 2018

調用linux系統的命令
標準輸出傳給管道(PIPE)

from subprocess import Popen,PIPE

In [52]: subprocess.call(‘ls /root‘,shell=True)
123.txt anaconda-ks.cfg python shell test venv
Out[52]: 0

In [47]: PP=Popen([‘ls‘,‘/root‘],stdout=PIPE)
In [48]: tt=PP.stdout.read().strip()
In [49]: tt
Out[49]: ‘123.txt\nanaconda-ks.cfg\npython\nshell\ntest\nvenv‘

異常處理、模塊包、時間模塊、subprocess(調用shell命令)