我使用模块argparse,我希望有一个input_file的命令行参数,它是utf-16中文件的路径。我想使用argparse.FileType这样的东西:
parser.add_argument('input_file', type=argparse.FileType('r'))
不幸的是,argparse.FileType __init__
没有收到编码参数。
是否有另一种方法可以这样做,而不是仅将input_file
的类型设置为str,并实现argparse.Action
的子类,用codecs
打开文件?
感谢。
答案 0 :(得分:0)
argparse.FileType
isn't so long or complicated。您可以通过子类化或仅通过复制the source并修改它来创建自己的带有编码参数的版本。 (子类似乎有些愚蠢,因为除了__repr__
之外你必须覆盖整个类。)