我目前正在研究 argparse 模块,我希望我的程序表现得像这样:
$ python cldir.py # this should delete all .meta files in ~/downloads
$ python cldir.py -d /path/name/ # delete all .meta files in /path/name
$ python cldir.py -d /path/name -e txt # should delete all .txt files in /path/name
现在,我知道我需要为文件扩展名使用另一个参数(在本例中为 -e),但我想知道如何使 -d 开关的行为如上所示。
到目前为止,这是我的代码:
#!/usr/bin/env python
import argparse
import os
import glob
version = "0.1.1"
parser = argparse.ArgumentParser(
description = 'cldir: clear a directory from .meta and other unwanted files')
# arguments list
parser.add_argument('-v', '--version', action='version', version = version)
parser.add_argument('-d', '--direct', action = 'store_true')
args = parser.parse_args()
if args.direct == False:
path = os.environ['HOME'] + '/downloads/'
files = glob.glob(path + '*.meta')
if len(files) == 0:
print('No .meta files found in ~/downloads')
else:
for f in files:
os.remove(f)
print('%d file(s) deleted' %len(files))
else:
print(args.direct)
else: print(args.direct) 仅用于测试,直到我实现所需的行为。
任何其他观察/建议也非常受欢迎,因为我是 python 新手。