argparse
Pythonコードの引数を読み込むために使用しています。title
これらの入力の 1 つは、Unicode 文字を含むことができるファイル [ ] のタイトルです。22少女時代22
テストストリングとして使用しています。
入力の値をtitle
ファイルに書き込む必要がありますが、文字列を変換しようとすると、UTF-8
常にエラーがスローされます。
UnicodeDecodeError: 'ascii' コーデックは位置 2 のバイト 0x8f をデコードできません: 序数が範囲外です (128)
私は周りを見回しており、文字列をu"foo"
呼び出すための形式にする必要があることがわかり.encode()
ました。
type()
からの入力を実行すると、次のようargparse
に表示されます。
<type 'str'>
私は次のような応答を得たいと思っています:
<type 'unicode'>
どうすれば正しい形で取得できますか?
考え:
を受け取るように変更argparse
しますがstr
、Unicode 文字列として保存しますu"foo"
。
parser.add_argument(u'title', metavar='T', type=unicode, help='this will be unicode encoded.')
このアプローチはまったく機能していません。考え?
編集1:
いくつかのサンプルコードtitle
は22少女時代22
次のとおりです。
inputs = vars(parser.parse_args())
title = inputs["title"]
print type(title)
print type(u'foo')
title = title.encode('utf8') # This line throws the error
print title