-1
我修改這裏給出的示例代碼: sample code for getopt與getopt的Python的命令行參數不起作用
如下,但它不工作。我不知道我錯過了什麼。我爲這個現有的代碼添加了一個「-j」選項。最終,我想添加儘可能多的命令選項以滿足我的需求。
當我輸入如下,它不會打印任何東西。
./pyopts.py -i dfdf -j qwqwqw -o ddfdf
Input file is "
J file is "
Output file is "
請問我能告訴我這裏有什麼問題嗎?
#!/usr/bin/python
import sys, getopt
def usage():
print 'test.py -i <inputfile> -j <jfile> -o <outputfile>'
def main(argv):
inputfile = ''
jfile = ''
outputfile = ''
try:
opts, args = getopt.getopt(argv,"hij:o:",["ifile=","jfile=","ofile="])
except getopt.GetoptError:
usage()
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
usage()
sys.exit()
elif opt in ("-i", "--ifile"):
inputfile = arg
elif opt in ("-j", "--jfile"):
jfile = arg
elif opt in ("-o", "--ofile"):
outputfile = arg
print 'Input file is "', inputfile
print 'J file is "', jfile
print 'Output file is "', outputfile
if __name__ == "__main__":
main(sys.argv[1:])
請勿使用getopt。使用argparse。 – 2014-09-21 17:04:23
我很驚訝'getopt'尚未被棄用。 – simonzack 2014-09-21 17:15:09
可能因爲它從來沒有打算成爲解析選項的主要方法;它只是作爲來自C的用戶的墊腳石而已。這幾乎是自我否定的:) – chepner 2014-09-21 17:32:25