如何将 return 值分配给 python 中的变量而不是内存地址?
How can I assign a return value to a variable in python not the memory address?
我有两个串行端口连接到同一台计算机。下面的代码将打印端口连接到我的机器。我只想将端口值分配给一个变量,这样我就可以在代码中使用 down。
import serial.tools.list_ports
ports = list(serial.tools.list_ports.comports())
for p in ports:
print p
输出是
>>> /dev/ttyS0 - ttyS0
/dev/ttyUSB1 - FT232R USB UART
/dev/ttyUSB0 - USB-Serial Controller D
我想解析这些信息并分配以下内容:
var1 = ttyS0
var2 = ttyUSB1
var3 = ttyUSB0
我如何在 python3 中做到这一点?
假设输出是一个字符串,您可以在“/”上拆分每个端口,然后收集每个端口的第一个 space:
拆分 ('/') 将 return:
['', 'dev', 'ttyS0 - 'ttyS0']
收集第三个元素然后在“ ”上拆分将 return:
['ttyS0', '-', ttyS0']
将此拆分的第一个元素分配给所需的变量。
port_values = []
for p in ports:
part_values.append(p.split('/')[2].split(' ')[0]
如果您希望将它们返回为 var_1、var_2 等,您可以将它们从列表中拉出:
var_1 = port_values[0]
var_2 = port_values[1]
var_3 = port_values[2]
如documentationlist_portreturn中提到的ListPortInfo对象列表。此对象具有一些属性(设备、名称...)
import serial.tools.list_ports
ports = list(serial.tools.list_ports.comports())
for p in ports:
print (p.name)
我有两个串行端口连接到同一台计算机。下面的代码将打印端口连接到我的机器。我只想将端口值分配给一个变量,这样我就可以在代码中使用 down。
import serial.tools.list_ports
ports = list(serial.tools.list_ports.comports())
for p in ports:
print p
输出是
>>> /dev/ttyS0 - ttyS0
/dev/ttyUSB1 - FT232R USB UART
/dev/ttyUSB0 - USB-Serial Controller D
我想解析这些信息并分配以下内容:
var1 = ttyS0
var2 = ttyUSB1
var3 = ttyUSB0
我如何在 python3 中做到这一点?
假设输出是一个字符串,您可以在“/”上拆分每个端口,然后收集每个端口的第一个 space:
拆分 ('/') 将 return:
['', 'dev', 'ttyS0 - 'ttyS0']
收集第三个元素然后在“ ”上拆分将 return:
['ttyS0', '-', ttyS0']
将此拆分的第一个元素分配给所需的变量。
port_values = []
for p in ports:
part_values.append(p.split('/')[2].split(' ')[0]
如果您希望将它们返回为 var_1、var_2 等,您可以将它们从列表中拉出:
var_1 = port_values[0]
var_2 = port_values[1]
var_3 = port_values[2]
如documentationlist_portreturn中提到的ListPortInfo对象列表。此对象具有一些属性(设备、名称...)
import serial.tools.list_ports
ports = list(serial.tools.list_ports.comports())
for p in ports:
print (p.name)