我仍在学习python,因此请记住,因为我不是专家,我正在尝试创建一个小程序,该程序将根据用户输入创建文件,
第一个菜单将包含设备的某些条形码,每次条形码扫描仪扫描时,设备都会自动发送回车,因此,为什么在扫描后我做了while True:
为了允许多次输入完成后,用户将通过按CTRL + D转到下一个菜单
下面的代码一直起作用,直到调用下一个菜单但停止(它应该要求用户输入下一个值)
def netmap_mac():
clear()
header_function()
print('Start by scanning the mac address of the device: ')
print('When finish press <CTRL+D>')
mac = []
while True:
try:
line = input()
except EOFError:
return netmap_ip()
mac.append(line)
print(mac)
def netmap_ip():
clear()
header_function()
print('Enter the mangement IP for each MAC you scanned: ')
print('When finish press <CTRL+D>')
ip = input()
print ('This is netmap_ip()')
我了解我的问题,while循环仍然为True
,但我不确定如何关闭它
我相信while循环将是我唯一的简单选择,因为条形码扫描器会在每个条形码扫描完成后自动发送Enter键
我正在运行python3
答案 0 :(得分:0)
按照您描述的流程,这是代码。 1.你应该休息一会儿 2.您应该在netmap_ip函数中添加一会儿
def netmap_mac():
# clear()
# header_function()
print('Start by scanning the mac address of the device: ')
print('When finish press <CTRL+D>')
mac = []
while True:
try:
line = input()
mac.append(line)
except EOFError:
break
print(mac)
netmap_ip()
def netmap_ip():
# clear()
# header_function()
print('Enter the mangement IP for each MAC you scanned: ')
print('When finish press <CTRL+D>')
ips = []
while True:
try:
line = input()
ips.append(line)
except EOFError:
break
print ('This is netmap_ip()')
print(ips)
if __name__ == '__main__':
netmap_mac()
更新:
输出:
Start by scanning the mac address of the device:
When finish press <CTRL+D>
mac1
mac2 # -> press Ctrl-D
['mac1', 'mac2']
Enter the mangement IP for each MAC you scanned:
When finish press <CTRL+D>
ip1
ip2 # -> press Ctrl-D
This is netmap_ip()
['ip1', 'ip2']