如何将命令行开关转换为unicode Python2和3兼容

时间:2017-07-12 09:14:11

标签: python argparse six

我正在尝试在PY2和PY3中使用unicode制作Argparse,最好不要使用if six.PY2:sys.version_info.major之类的复杂构造。当使用unicode进行io操作或直接字符串文字时,我知道我必须使用io / codecs或从__futute__导入来解决这些问题。但是不确定argparse的最佳方法是什么。目前我正在使用此代码:

parser = argparse.ArgumentParser()
argv_enc = sys.getfilesystemencoding()
parser.add_argument('url', type=lambda s: bytearray(s,argv_enc).decode(argv_enc))

我认为这是不正确的,因为bytearray尝试解码ASCII,我根本不需要这个步骤。相反,我想解码s只有它尚未被解码。 提前谢谢。

0 个答案:

没有答案