私は初心者で、過去に同様の質問があったと確信していますが、答えを見つけたり理解したりするのに苦労しています。辛抱強くお待ちいただきありがとうございます!
そこで、utf-8 でエンコードされた入力ファイルの行を読み取り、その一部をユーザーから渡されたオプションのコマンド ライン引数と比較し、一致する場合はその行に何かを実行するスクリプトを作成しようとしています。出力ファイルに出力する前に。私はcodecs
ファイルを開くために使用しています。
現在、このモジュールを使用してargparse
コマンド ライン引数を解析しています。ファイル内の行はあらゆる種類の言語で記述できるため、コマンド ライン引数も utf-8 である必要があります。
例えば:
ファイルの行は次のようになります。
разъедают {. r ax z . j je . d ax1 . ju t .}
スクリプトは、コマンド ラインから次のように呼び出す必要があります。
>python myscript.py mytextfile.txt -grapheme ъ
これが、処理を行うはずの私のコードの一部です。この場合、orth
はキリル文字でgrapheme
あり、キリル文字です。
def process_orth(orth, grapheme):
grapheme = grapheme.decode(sys.stdin.encoding).encode('utf-8')
if (grapheme in orth):
print 'success, your grapheme was: ' + grapheme.encode('utf-8')
return True
else:
print 'failure, your grapheme was: ' + grapheme.encode('utf-8')
return False
残念ながら、書記素が確実に存在する場合でも、関数は false を返し、書記素の代わりに疑問符を出力します。
failure, your grapheme was: ?
私が読んだ他の投稿の推奨に従って、最初に次を追加しようとしましたprocess_orth()
が、うまくいかなかったようです:
grapheme.decode(sys.stdin.encoding).encode('utf-8')
だから私の質問は...
コマンドラインから utf-8 文字列を Python スクリプトに渡すにはどうすればよいですか? また、Windows7でこれに余分な癖はありますか(そして、cygwinをインストールすると何かが変わりますか)?