15

Python 3のドキュメントでは、コーデックページにrot13がリストされています。

rot13エンコーディングを使用して文字列をエンコードしてみました:

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

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

4

5 に答える 5

22

Python 3.2+ には、rot_13str-to-str コーデックがあります:

import codecs

print(codecs.encode("hello", "rot-13")) # -> uryyb
于 2013-11-19T07:11:37.423 に答える
10

あはは!Python 3 から削除されたと思っていましたが、そうではありません。インターフェイスが変更されただけです。コーデックはバイトを返す必要があるためです (これは str-to-str です)。

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

import codecs
s   = "hello"
enc = codecs.getencoder( "rot-13" )
os  = enc( s )[0]
于 2012-05-14T00:44:05.333 に答える
0

まず、Python ライブラリをインストールする必要があります - https://pypi.org/project/endecrypt/

pip install endecrypt (windows)
pip3 install endecrypt (linux)

それから、

from endecrypt import cipher

message_to_encode = "Hello World"
conversion = 'rot13conversion'

cipher.encode(message_to_encode, conversion )
# Uryyb Jbeyq

message_to_decode = "Uryyb Jbeyq"

cipher.decode(message_to_decode, conversion)
# Hello World
于 2020-10-31T04:50:55.240 に答える