我应该在python中使用argparse进行文件操作吗?在线的所有示例都是关于命令行参数本身的简单操作。更具体地说,我有3个特定的文件操作任务,让我们称它们为a,b和c。例如,运行
python -i input.csv -a -b
应该在input.csv上运行任务a和b。
如果argparse确实合适,我该怎么做呢?我目前的计划是为每个任务定义一个自定义操作,以使代码更具可扩展性和可重用性。有什么建议吗?
答案 0 :(得分:2)
是的,你可以完美地使用argparse和文件名。 例如:
parser = argparse.ArgumentParser()
parser.add_argument("-i", type=str, help="...")
parser.add_argument('-a', dest='task_a', action='store_true', help="...")
parser.add_argument('-b', dest='task_b', action='store_true', help="...")
parser.set_defaults(task_a=False)
parser.set_defaults(task_b=False)
args = parser.parse_args()
file_name = args.i
# or file_name = os.path.expanduser(args.i)
if os.path.isfile(file_name):
file = open(file_name, 'rb')
# and now do whatever you need to do with the file
if args.task_a:
...
if args.task_b:
...
file.close()