0

私は単にファイル暗号化から読み取って表示しようとしています。

結果を単語ごとに表示したいのですが、どういうわけかスペースが削除され (私の dict には ' ':' ' も含まれています)、結果テキストはスペースなしで表示されます。

例えば、

aa bb ccは、ファイルから読み取ったものです。

現在の出力ffggğğですが、 ff ggğğとして欲しいです

...助けてください...

monocrypt = {
    'a': 'f',
    'b': 'g',
    'c': 'ğ',
    'ç': 'h',
    'd': 'ı',
    'e': 'i',
    'f': 'j',
    'g': 'k',
    'ğ': 'l',
    'h': 'm',
    'ı': 'n',
    'i': 'o',
    'j': 'ö',
    'k': 'p',
    'l': 'r',
    'm': 's',
    'n': 'ş',
    'o': 't',
    'ö': 'u',
    'p': 'ü',
    'r': 'v',
    's': 'y',
    'ş': 'z',
    't': 'a',
    'u': 'b',
    'ü': 'c',
    'v': 'ç',
    'y': 'd',
    'z': 'e',
    ' ': ' ',
}

inv_monocrypt = {}
for key, value in monocrypt.items():
    inv_monocrypt[value] = key

f = open("C:\\Hobbit.txt","r")
print("Reading file...")

message = f.read()
crypt = ''.join(i for i in message if i.isalnum())
encrypted_message = []
for letter in crypt:
    encrypted_message.append(monocrypt[letter.lower()])

print(''.join(encrypted_message))
4

3 に答える 3

0

ドキュメントを確認してください: http://docs.python.org/2/library/stdtypes.html#str.isalnum

isalnum は空白を削除します。

スペース文字を保持したい場合はこれを使用します。他のすべては同じままです:

crypt = ''.join(i for i in message if i.isalnum() or i==' ')

すべての空白を保持したい場合は、次のようにします。

crypt = ''.join(i for i in message if i.isalnum() or i.isspace())
于 2013-11-09T14:09:04.580 に答える