2

我正在使用模块 argparse,我想要一个 input_file 的命令行参数,它是 utf-16 中文件的路径。我想使用 argparse.FileType 来做类似的事情:

parser.add_argument('input_file', type=argparse.FileType('r'))

不幸的是, argparse.FileType__init__不接收编码参数。

有没有另一种方法可以做到这一点,而不是仅仅将input_file's 的类型设置为 str,并实现一个子类argparse.Action来打开文件codecs

谢谢。

4

1 回答 1

0

argparse.FileType 不是那么长或复杂您可以通过子类化或仅通过复制源代码并对其进行修改来制作自己的带有编码参数的版本。(子类化似乎有点傻,因为你必须覆盖整个类,除了可能__repr__。)

于 2012-07-21T19:34:58.230 回答