直接上代码,通过实例代码模仿规律
1.python多线程之——thread(比如在嵌入式里面烧写版本)
#!/usr/bin/python3
import _thread
import time
# 为线程定义一个函数
def print_time( threadName, delay):
count = 0
while count < 5:
time.sleep(delay)
count += 1
print ("%s: %s" % ( threadName, time.ctime(time.time()) ))
# 创建两个线程
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区分开,先把多线程的模块导入进来
步骤2:
def 关键字定义一个功能函数:实现一个具体的功能(比如烧写版本),python这样的高度封装的脚本语言功能的实现都是以函数为单位实现的,然后要给这个定义的函数传入必要的参数,为了便于查看输出打印,应该使用占位符进行格式化输出:print("%s:%s"%(A,B))
步骤3:
创建线程:为了避免异常情况,要采用try-except的方式处理,然后用_thread.start_new_thread(功能函数,函数必要的参数)
步骤4:
终止线程:ctrl+c
这样就算完成了一个最简单的基本功能的多线程,现成的复杂程度取决于函数的复杂程度,总之,python这样的语言,高度封装,最重要的还是要能把一个任务节能型拆解,拆分成各种各样的小步骤,俗称“造轮子”,然后通过函数调用,把这些轮子整合在一起,就完成了一个业务功能,在嵌入式的自动化测试领域很常用,按照这个套路就可以很快的整合出来
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截取字符串
4.python日志处理模块logging
很多程序都有记录日志的需要,python作为优秀的脚本语言,也提供了丰富的操作方法,主要模块为logging,logging的日志可以分为 debug(), info(), warning(), error() and critical() 5个级别
最简单的用法打印日志:
import logging
logging.debug("正在调试") logging.info("正在打印") logging.warning("程序有异常") logging.error("程序出现错误") logging.critical("程序出现严重问题")
将日志记录到指定文件中:
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("程序出现错误") logging.critical("程序出现严重问题")
这种方式会将日志记录到脚本同级目录下,但是终端是不会打印的,如果想要把日志同时打印在终端就需要学习下一个模块Handler
logging.StreamHandler
使用这个Handler可以向类似与sys.stdout或者sys.stderr的任何文件对象(file object)输出信息。它的构造函数是:
StreamHandler([strm])
其中strm参数是一个文件对象。默认是sys.stderr
————————————————
logging.FileHandler
和StreamHandler类似,用于向一个文件输出日志信息。不过FileHandler会帮你打开这个文件。它的构造函数是:
FileHandler(filename[,mode])
filename是文件名,必须指定一个文件名。
mode是文件的打开方式。参见Python内置函数open()的用法。默认是’a’,即添加到文件末尾
————————————————
暂时就写到这里,后面遇到新的问题了再补充