argparse用于文件操作

时间:2015-01-04 16:28:33

标签: python argparse file-manipulation

我应该在python中使用argparse进行文件操作吗?在线的所有示例都是关于命令行参数本身的简单操作。更具体地说,我有3个特定的文件操作任务,让我们称它们为a,b和c。例如,运行

python -i input.csv -a -b

应该在input.csv上运行任务a和b。

如果argparse确实合适,我该怎么做呢?我目前的计划是为每个任务定义一个自定义操作,以使代码更具可扩展性和可重用性。有什么建议吗?

1 个答案:

答案 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()