我在编写脚本时遇到了这个getopt()
代码的问题,它在给出2个必需参数(输入文件名和输出文件名)和/或2个可选/情景参数(调试或帮助)的情况下执行一些简单的文件操作。getopt()不强制执行所需的参数?
代码是:
def main(argv):
try:
opts, args = getopt.getopt(argv, "i:o:dh", ["input-file=", "output-file=", "debug", "help"])
except getopt.GetoptError:
usage()
sys.exit(2)
for opt, arg in opts:
if opt in ("-h", "--help"):
usage()
sys.exit()
elif opt in ("-d", "--debug"):
global _debug
_debug = 1
elif opt in ("-i", "--input-file"):
u_input_file_name = arg
elif opt in ("-o", "--output-file"):
u_output_file_name = arg
按照getopt()
文档:需要一个参数跟一个冒号( ':
'
选项;即,相同的格式的Unix getopt的()使用)。
的问题是,我的理解是,变量/ ARGS接着是:
应根据需要强制执行......但选项i
和o
不被执行。运行这段代码加纳斯约u_input_file_name
错误被分配之前被引用:
[[email protected] ~/python]$ ./inco_add_cm_mpscli.py -o google
Traceback (most recent call last):
File "./inco_add_cm_mpscli.py", line 57, in <module>
main(sys.argv[1:])
File "./inco_add_cm_mpscli.py", line 25, in main
infile = open(u_input_file_name, 'r')
UnboundLocalError: local variable 'u_input_file_name' referenced before assignment
我在做什么错?
什么的划定方案的目的如果要求没有得到处理,**需要**吗? – 2011-02-18 19:52:40