作为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()
检查这两个文件中的任何一个。
相关文章