2012-05-14 4 views
8

Python 3のドキュメントには、codecs pageにrot13が記載されています。Python3でROT13をエンコードする方法は?

私はROT13エンコーディングを使用して文字列を符号化しようとした:

import codecs 
s = "hello" 
os = codecs.encode(s, "rot13") 
print(os) 

これはunknown encoding: rot13エラーになります。組み込みrot13エンコーディングを使用する別の方法はありますか?このエンコーディングがPython 3で削除されている場合(Googleの検索結果が示すように)、Python3のドキュメントに記載されているのはなぜですか?

+1

あなただけの 's.encode( "ROT13")'や 's.encodeを試してみました( "rot_13") '?私は 'codecs.encode'のようなものはないと思っています。単にcodecs.Codec()。encode' – agf

+0

agf:codecs.Codec()。encode()関数は文字列入力のみを受け取ります。エンコーディングタイプで渡すパラメータ。 –

+2

あなたは 'os'をシャドーするべきではありません。 ಠ_ – nyuszika7h

答えて

7

Aha!私はそれがPython 3から削除されたと思っていましたが、コーデックはバイトを返さなければならないので、インターフェイスが変更されただけです(これはstr-to-strです)。

これはhttp://www.wefearchange.org/2012/01/python-3-porting-fun-redux.htmlからである:

はPython 3.2以上で
import codecs 
s = "hello" 
enc = codecs.getencoder("rot-13") 
os = enc(s)[0] 
関連する問題