2012-07-21 55 views
2

我使用模塊argparse,並且我想要一個input_file的命令行參數,它是utf-16中文件的路徑。我想用argparse.FileType類似的東西:Python 2.7的argparse - 在utf-16中讀取的打開文件

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

不幸的是,argparse.FileType __init__不接收編碼參數。

是否有另一種方式來做到這一點,而不是僅僅設定input_file的類型爲str,並實施argparse.Action打開與codecs文件的子類?

謝謝。

回答

0

argparse.FileTypeisn't so long or complicated。你可以製作自己的版本,它需要一個編碼參數,無論是通過子類化還是通過複製the source並修改它。 (子類似乎有點愚蠢,因爲除了可能__repr__之外,你必須重寫整個類。)