我正在尝试解析运行Python脚本时的一些选项。
def main(argv):
try:
opts, args = getopt.getopt(argv,"a:p:i:r",["algo=", "population=", "iterations=", "random"])
except getopt.GetoptError:
printUsage()
sys.exit(1)
print(args, opts)
#Afterwards, I parse the options
#...
if __name__ == "__main__":
main(sys.argv[1:])
但是,当我运行这个
时python tsp.py cities.txt -p 4
print(args, opts)
产生了这个。
(['cities.txt', '-p', '4'], [])
为什么将选项解析为参数?
答案 0 :(得分:2)
getopt
要求所有-
选项首先。 <{1}}在非破折号选项之后来了。
-p 4
将被正确解析。
您可能希望切换为使用argparse
library;它更加灵活,可以在任何位置解析可选的命令行开关,因为它还可以显式处理所需的参数。