对此不熟悉,请原谅。是否有可能(如果可以,怎么办)从包含数字和字母的用户那里接收命令?当用户输入“ ./test -selectport af15”之类的内容时,我想从用户那里获取3个参数(第一个参数始终为一个字母,第二个参数始终为一个字母,第三个参数应为1至3位数字(1-999)任何帮助表示感谢。
答案 0 :(得分:0)
我想这样的事情会做:
import sys
if __name__ == "__main__":
user_input = sys.argv[2]
first_letter = user_input[0]
second_letter = user_input[1]
third = user_input[2:]
print(first_letter)
print(second_letter)
print(third)
输出:
python test.py -selectport af15
a
f
15
当然,您需要自行处理特殊情况,可能的用户输入错误等。在这里,我假设输入始终正确。从这里开始并详细说明。
答案 1 :(得分:0)
我认为可能会使您感到困惑的是argparse文档告诉您将agrument视为类型的方式。如果对此不熟悉,可能会使它看起来比实际更复杂。另一个答案包括方法,但要明确回答您的问题:
在argparse中将整个内容作为字符串处理,解析出所需的三个部分,然后将最后一个部分自己转换为int。
应该带你去
#!/usr/bin/env python3
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('-selectport', help='Will parse this string into a few items')
args = parser.parse_args()
first = args.selectport[0]
second = args.selectport[1]
last = int(args.selectport[2:])
print(f"{first} {second} {last}")