python常用小模块(持续更新)
2022/1/12 20:04:14
本文主要是介绍python常用小模块(持续更新),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
串口类
win电脑上,采用两个ttl模块来进行
插入可以看到另一个串口的信息,这里我看到的另一个串口是COM11
需要提前安装串口工具,这里我选用的是conda的环境,因此就是切换到用的虚拟环境,之后pip安装即可
下面先来一段,一秒钟打印一个字符
import serial import time serial = serial.Serial('COM11', 115200) print(serial) if serial.isOpen(): print("open success") else: print("open failed") try: while True: serial.write('hello serial\r\n'.encode('utf-8')) time.sleep(1) except KeyboardInterrupt: if serial != None: serial.close()
运行结果如下
分析上面的代码,可以看出,要使用串口的话,首先定义一个串口对象,设置波特率和串口号,当然其他参数是缺省,可设置或者直接默认,也可以直接看看源码
然后要注意的是,pyserial的文档注明write的输入参数必须是bytes 格式的
可以看到最后进入这个页面
直接看打印信息也可以看出来
下面测试发送变量
serial.write(1)
这里直接发送1
就一直返回00,(前面提到只能发二进制数据)所以这里还是先转字符吧
修改循环中的内容,别忘了前面定义变量
serial.write((str(a)+'\r\n').encode('utf-8')) time.sleep(1) a+=1
这样就可以发送变量了,之后我们在另一端转成字符即可
下面我们尝试使用树莓派来完成,树莓派有usb头并且本身有串口外设,所有可以用两种方式来进行串口传输 ,下面一一尝试使用这些外设
首先是要开启这个外设,还是系统设置那里,这里我不赘述,和vnc一个地方的
树莓派引脚图:
查看设备,输入
ls -l /dev
看到有啷个串口,这里我们用上面图中比较明显的那个
然后我用了扩展线来接线,如下,另一头连上电脑的usb设备
使用pyserial库,安装
sudo apt-get install python-serial
编写python代码
import serial import time ser = serial.Serial("/dev/ttyS0", 9600) def main(): while True: cnt = ser.inWaiting() if cnt != 0: recv = ser.read(cnt) ser.write(recv) ser.flushInput() time.sleep(0.1) if __name__ == '__main__': main()
电脑本地建立连接
输入测试,这里是写的一段回显函数,看起来是还行的,这个库和电脑端一样的
下面测试使用USB的方式
输入命令查看usb设备信息,之后再插入usb查看USB信息,结果如下
lsusb
输入命令查看新增的串口信息
ls -l /dev/tty*
后面就一样了,还是用上面的代码,改下口就OK
import serial import time ser = serial.Serial("/dev/ttyUSB0", 9600) def main(): while True: cnt = ser.inWaiting() if cnt != 0: recv = ser.read(cnt) ser.write(recv) ser.flushInput() time.sleep(0.1) if __name__ == '__main__': main()
一切OK
读取文件类
txt
大致要求如下,记录了一个运动物体的轨迹坐标数据,现希望将其可视化表示出来,数据样例如下
可以看出,是需要读取文件然后分割字符串,代码如下,这里我建立了两个空列表用于存储需要的数据,之后每行遍历,先清除了换行符,之后利用,进行分隔,取第一个逐个添加到x,之后取第二个逐个添加到y,这里一定注意关闭文件
f = open("test.txt",'r') x = [] y = [] for line in f: # print(line.split(',')[0]) line= line.strip('\n') x.append(int(line.split(',')[0])) y.append(int(line.split(',')[1])) f.close()
之后再使用绘图函数,先画了散点图,之后连线图
plt.scatter(x,y,color="red") plt.title("demo") plt.xlabel("X") plt.ylabel("Y") plt.plot(x,y,color = "green") plt.show()
如下所示
excle
将上面的数据存入excle,首先需要一个库 ,注意不要安装最新版的,最新版的不支持xlsx文件。会报错,我这个版本即可
然后是下面的读的库,这里我已经装过了
下面是编写的代码部分
import xlwt f = open("test.txt",'r') x = [] y = [] for line in f: # print(line.split(',')[0]) line= line.strip('\n') x.append(int(line.split(',')[0])) y.append(int(line.split(',')[1])) f.close() workbook = xlwt.Workbook(encoding='utf-8') ws = workbook.add_sheet("sheet1") for i in range(len(x)): ws.write(i, 0, x[i]) for j in range(len(y)): ws.write(j, 1, y[j]) workbook.save('data.csv')
结果如下
基本没问题,这里要注意就是用这个模块编写数据长度过长会报错,他一次只能遍历256个单元格
报错信息为
column index (256) not an int in range(256)
源码在这里
这里要么我们就每隔256执行一次,要么就改为csv的格式保存,这样就没问题了,这里我用的是csv的方式,详情看代码!
这篇关于python常用小模块(持续更新)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享