作为argparse参数的目录路径

2022-05-06 00:00:00 python argparse

问题描述

我希望在ArgumentParser()add_argument()中接受目录路径作为用户输入。

到目前为止,我写了以下内容:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('path', option = os.chdir(input("paste here path to biog.txt file:")), help= 'paste path to biog.txt file')

此问题的理想解决方案是什么?


解决方案

可以确保路径是有效的目录,如下所示:

import argparse, os

def dir_path(string):
    if os.path.isdir(string):
        return string
    else:
        raise NotADirectoryError(string)

parser = argparse.ArgumentParser()
parser.add_argument('--path', type=dir_path)

# ...

可以使用os.path.isfile()检查文件,也可以使用os.path.exists()检查这两个文件中的任何一个。

相关文章