谁能发现为什么下面的脚本没有打印传递的参数?
import sys, getopt
def usage():
print 'Unknown arguments'
def main(argv):
try:
opts, args = getopt.getopt(argv,'fdmse:d',['files=','data-source=','mode=','start','end'])
except getopt.GetoptError:
usage()
sys.exit(999)
for opt, arg in opts:
# print opt,arg
if opt in('-f','--files'):
print 'files: ', arg #
if __name__ == "__main__":
main(sys.argv[1:])
当我在命令行运行脚本并传递参数
-f=dummy.csv
时,似乎调用了 usage()
- 为什么?顺便说一句,我发现程序流的逻辑有点奇怪(我从 here 复制了它)。通常,我会认为逻辑将在 try 分支中实现,然后在异常处理程序之后。
这是(如上面代码中粘贴的那样)编写 try/catch 块的“Pythonic”方式吗?
最佳答案
“一般”?通常是什么意思?
程序应该做什么?什么异常有意义?程序如何响应异常。
没有“通常”。比普通的赋值语句或普通的函数定义更多。
您的程序会做有意义的事情来实现所需的最终状态。没有“通常”。
关于python - 在 python 脚本中解析命令行参数(getopt woes),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3934799/