Python 串行轮询存储器

Python 串行轮询存储器,python,polling,pyserial,Python,Polling,Pyserial,我正在使用Pyserial连接到身份证读卡器,希望进行连续轮询。如果我打印所有内容,我会注意到每个超时都会导致readline存储一个空字符串。上面的代码改善了丑陋/无限输出的问题,但我担心内存使用。既然我重用了“line”,我想这没有什么问题,但是从无限轮询开始有问题吗 谢谢它看起来很好-不应该在该循环中浪费内存,因为它不会保留对过去行的引用 在这个过程中设置一个手表,看看一两天内内存消耗是否在增长,这不会对你造成伤害——但我不会担心 假设您在一台内存为512MB的旧机器上运行此程序,Pyth

我正在使用Pyserial连接到身份证读卡器,希望进行连续轮询。如果我打印所有内容,我会注意到每个超时都会导致readline存储一个空字符串。上面的代码改善了丑陋/无限输出的问题,但我担心内存使用。既然我重用了“line”,我想这没有什么问题,但是从无限轮询开始有问题吗


谢谢

它看起来很好-不应该在该循环中浪费内存,因为它不会保留对过去行的引用

在这个过程中设置一个手表,看看一两天内内存消耗是否在增长,这不会对你造成伤害——但我不会担心

假设您在一台内存为512MB的旧机器上运行此程序,Python进程只剩下200MB内存—读线超时需要1秒,每个空字符串对象占用内存中的大约64字节—大约37天后,您的内存就会用完

import serial

ser = serial.Serial('COM5', baudrate=9600, parity=serial.PARITY_NONE, timeout=1)
print "connected to: " + ser.portstr
while ser.isOpen():
    line = ser.readline().strip()
    if len(line)==16:
        print "Id number is",line[5:-2]

ser.close()