python常用模块总结(嵌入式日志分析)
直接上代碼,通過實例代碼模仿規(guī)律
1.python多線程之——thread(比如在嵌入式里面燒寫版本)
#!/usr/bin/python3
import?_thread
import?time
# 為線程定義一個函數(shù)
def?print_time(?threadName,?delay):
? ?count?=?0
? ?while?count?<?5:
? ? ??time.sleep(delay)
? ? ? count +=?1
? ? ??print?("%s: %s"?%?(?threadName,?time.ctime(time.time())?))
# 創(chuàng)建兩個線程
try:
? ?_thread.start_new_thread(?print_time,?("Thread-1",?2,?)?)
? ?_thread.start_new_thread(?print_time,?("Thread-2",?4,?)?)
except:
? ?print?("Error: 無法啟動線程")
while?1:
? ?pass
分析上述代碼:
步驟1:
import _thread:python線程的名字,之所以會加一個下劃線,是因為要和python2區(qū)分開,先把多線程的模塊導入進來
步驟2:
def 關鍵字定義一個功能函數(shù):實現(xiàn)一個具體的功能(比如燒寫版本),python這樣的高度封裝的腳本語言功能的實現(xiàn)都是以函數(shù)為單位實現(xiàn)的,然后要給這個定義的函數(shù)傳入必要的參數(shù),為了便于查看輸出打印,應該使用占位符進行格式化輸出:print("%s:%s"%(A,B))
步驟3:
創(chuàng)建線程:為了避免異常情況,要采用try-except的方式處理,然后用_thread.start_new_thread(功能函數(shù),函數(shù)必要的參數(shù))
步驟4:
終止線程:ctrl+c
這樣就算完成了一個最簡單的基本功能的多線程,現(xiàn)成的復雜程度取決于函數(shù)的復雜程度,總之,python這樣的語言,高度封裝,最重要的還是要能把一個任務節(jié)能型拆解,拆分成各種各樣的小步驟,俗稱“造輪子”,然后通過函數(shù)調用,把這些輪子整合在一起,就完成了一個業(yè)務功能,在嵌入式的自動化測試領域很常用,按照這個套路就可以很快的整合出來
?
2.python讀取設備串口打印的字符串之——serial
import serial
ser=serial.Serial("/dev/ttyUSB0",9600,timeout=0.5)?#使用USB連接串行口
ser.open() ?#打開串口
port_list = list(serial.tools.list_ports.comports()) #python遍歷串口
ser.readline().decode("utf-8") #讀取串口打印
ser.close() #串口關閉
?
3.python切割字符串
str.find() #python查找字符串
s.strip().lstrip().rstrip(',') #python去掉字符串首尾的特殊字符
str.split(",") #python切割字符串,切割完以后是一個列表
str.[0:3] #python截取字符串
更多操作:https://blog.csdn.net/caodongfang126/article/details/105380512?ops_request_misc=&request_id=&biz_id=102&utm_term=python%E6%93%8D%E4%BD%9C%E5%AD%97%E7%AC%A6%E4%B8%B2&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-105380512.pc_search_result_before_js
4.python日志處理模塊logging
很多程序都有記錄日志的需要,python作為優(yōu)秀的腳本語言,也提供了豐富的操作方法,主要模塊為logging,logging的日志可以分為 debug(), info(), warning(), error() and critical() 5個級別
最簡單的用法打印日志:
import logging
logging.debug("正在調試") logging.info("正在打印") logging.warning("程序有異常") logging.error("程序出現(xiàn)錯誤") logging.critical("程序出現(xiàn)嚴重問題")將日志記錄到指定文件中:
logging.basicConfig(filename="example.log", format='%(asctime)s %(message)s', datefmt='%Y-%m-%d %I:%M:%S',level=logging.INFO) logging.debug("正在調試") logging.info("正在打印") logging.warning("程序有異常") logging.error("程序出現(xiàn)錯誤") logging.critical("程序出現(xiàn)嚴重問題")這種方式會將日志記錄到腳本同級目錄下,但是終端是不會打印的,如果想要把日志同時打印在終端就需要學習下一個模塊Handler
logging.StreamHandler?
使用這個Handler可以向類似與sys.stdout或者sys.stderr的任何文件對象(file object)輸出信息。它的構造函數(shù)是:?
StreamHandler([strm])?
其中strm參數(shù)是一個文件對象。默認是sys.stderr
————————————————
logging.FileHandler?
和StreamHandler類似,用于向一個文件輸出日志信息。不過FileHandler會幫你打開這個文件。它的構造函數(shù)是:?
FileHandler(filename[,mode])?
filename是文件名,必須指定一個文件名。?
mode是文件的打開方式。參見Python內置函數(shù)open()的用法。默認是’a’,即添加到文件末尾
————————————————
暫時就寫到這里,后面遇到新的問題了再補充
?
?
?
總結
以上是生活随笔為你收集整理的python常用模块总结(嵌入式日志分析)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VSCODE 配置cl.exe编译器
- 下一篇: 交流电及整流滤波电路