Python 2.7的argparse - 用于在utf-16中读取的打开文件

时间:2012-07-21 19:31:22

标签: python-2.7 argparse

我使用模块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打开文件?

感谢。

1 个答案:

答案 0 :(得分:0)

argparse.FileType isn't so long or complicated。您可以通过子类化或仅通过复制the source并修改它来创建自己的带有编码参数的版本。 (子类似乎有些愚蠢,因为除了__repr__之外你必须覆盖整个类。)