我正在学习如何使用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 .
运行代码
但没有任何作用。
我知道我很接近,我写了一种被评论的Frankenstein代码。
我哪里错了?我觉得我离解决方案太近了......
答案 0 :(得分:0)
感谢@match提供正确的提示。
问题是我在argparse定义中使用k
k
代码现在可以使用了!