【发布时间】:2014-05-24 20:53:10
【问题描述】:
我试图理解一些我发现的读取命令行参数的代码(附在下面)。我关心的是"if __name__ == __main__"line 的用途是什么......
我为什么要使用该行而不是仅使用下面的代码main(sys.argv[1:])。它提供了哪些额外的用途?
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:])
【问题讨论】:
-
典型问题是 What does if name == "main": do?(56 个答案。7,000 次投票。5 年前。)