以下是我的代码的一部分。我有一个功能,扫描COM端口并拉出连接的可用COM端口。我想在选项菜单中将这些com端口列为不同的选择。当我运行此代码时,唯一可用的选项是COM2 COM4,是否有一种简单的方法将这些选项分成两个不同的选项?我不仅仅关注如何使用列表填充选项菜单,而是如何将我拥有的数据转换为列表。感谢。
global model
model = StringVar(master)
self.option = StringVar()
w = OptionMenu(master, self.option, ())
从com端口扫描,print语句返回[' COM2',' COM4']。
print(serial_ports())
global com
com = list(serial_ports())
self.option.set(com)
以下是扫描com端口的完整代码。
def serial_ports():
""" Lists serial port names
:raises EnvironmentError:
On unsupported or unknown platforms
:returns:
A list of the serial ports available on the system
"""
if sys.platform.startswith('win'):
ports = ['COM%s' % (i + 1) for i in range(256)]
elif sys.platform.startswith('linux') or sys.platform.startswith('cygwin'):
# this excludes your current terminal "/dev/tty"
ports = glob.glob('/dev/tty[A-Za-z]*')
elif sys.platform.startswith('darwin'):
ports = glob.glob('/dev/tty.*')
else:
raise EnvironmentError('Unsupported platform')
result = []
for port in ports:
try:
s = serial.Serial(port)
s.close()
result.append(port)
except (OSError, serial.SerialException):
pass
return result
if __name__ == '__main__':
print(serial_ports())
global com
com = serial_ports()
self.option.set(com)
答案 0 :(得分:0)