我正在学习如何使用argparse,这对我来说是个迷宫。在
我有一个代码可以工作:如果我运行python Test.py .
,它将使用此代码打印层次结构中的所有文件
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import argparse
import sys
import glob
#parser = argparse.ArgumentParser()
#parser.add_argument('-input', dest='input',help="input one or more files",nargs='+',metavar=None
#args = parser.parse_args()
def dirlist(path, c = 1):
for i in glob.glob(os.path.join(path, "*")):
if os.path.isfile(i):
filepath, filename = os.path.split(i)
print ('----' *c + filename)
elif os.path.isdir(i):
dirname = os.path.basename(i)
print ('----' *c + dirname)
c+=1
dirlist(i,c)
c-=1
#path = os.path.normpath(args.input)
path = os.path.normpath(sys.argv[1])
print(os.path.basename(path))
dirlist(path)
但是,由于我想了解argparse是如何工作的,所以我希望使用python Test.py - input .
运行代码
但什么都不管用。在
我知道我很接近,我写了一个弗兰肯斯坦的代码,有注释。在
我哪里错了?我觉得我离解决问题很近了。。。在
感谢@match提供正确的提示。 问题是我在argparse定义中使用
nargs='+'
代码现在起作用了!在
相关问题 更多 >
编程相关推荐