alp*_*Ori 2 python file-type argparse
有没有办法使用文件类型检查文件名参数argparse?如果我可以创建正确类型的容器对象,似乎可以通过 type 或choices 关键字来完成。
我期待传入的文件类型(例如,file.txt),argparse如果文件类型不正确(例如),我想给出其自动消息.txt。例如,argparse 可能会输出
usage: PROG --foo filename etc... error: argument filename must be of type *.txt.
Run Code Online (Sandbox Code Playgroud)
也许我们可以尝试检测文件名字符串不以“.txt”结尾,而不是检测错误的文件类型,但这需要复杂的容器对象。
您可以使用type=关键字来指定您自己的类型转换器;如果您的文件名不正确,请抛出ArgumentTypeError:
import argparse
def textfile(value):
if not value.endswith('.txt'):
raise argparse.ArgumentTypeError(
'argument filename must be of type *.txt')
return value
Run Code Online (Sandbox Code Playgroud)
该类型转换器不具备的值转换..
parser.add_argument('filename', ..., type=textfile)
Run Code Online (Sandbox Code Playgroud)