我的命令行脚本接受几个参数,包括字符串,整型,浮点数和列表,并且使用所有参数进行调用变得有点棘手:
python myscript.py arg1 arg2 arg3 ... argN
为了避免在命令行中写入所有参数,我创建了一个包含所有参数的文本文件,我只是逐行读取以收集参数。这工作得很好,但这是最好的实践吗?有没有更有效的方法?
您可以使用argpase
模块。参考以下链接:)
非常简单的argparse示例:1个参数,3个结果
对于我来说,我认为python getopt是可行的方法。
#!/usr/bin/python
import sys, getopt
def main(argv):
inputfile = ''
outputfile = ''
try:
opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
except getopt.GetoptError:
print 'test.py -i <inputfile> -o <outputfile>'
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
print 'test.py -i <inputfile> -o <outputfile>'
sys.exit()
elif opt in ("-i", "--ifile"):
inputfile = arg
elif opt in ("-o", "--ofile"):
outputfile = arg
print 'Input file is "', inputfile
print 'Output file is "', outputfile
if __name__ == "__main__":
main(sys.argv[1:])
用法:
usage: test.py -i <inputfile> -o <outputfile>
当你有一个参数的名字时,运行起来更容易。
裁判:http://www.tutorialspoint.com/python/python_command_line_arguments.htm