我在Python中制作了一個自定義字典,將字母(大寫和小寫)更改為符號和數字。我正在嘗試將一個文本檔案的內容復制到另一個文本檔案,但在自定義字典中對其進行加密。例如,如果檔案說“Hello World”,那么它被復制到的另一個檔案應該說“%?;;2 !2(;”。我嘗試了很多東西,但它要么給我一個錯誤,要么給我另一個錯誤檔案保持空白
這是下面的代碼
fileData = open('EXAMPLE.txt', 'r')
f = open('ENCODE.txt', 'w')
for x in fileData:
encrypt = code.get(x, '')
f.write(encrypt)
fileData 是正在從中讀取/復制的檔案。code 是字典名稱。然后我嘗試從鍵中獲取值,或者如果它是數字/空格,它將只是默認值。但是,它總是出現空白。我嘗試了匯入 json,但我也無法使用字典對其進行加密。
示例.txt 有文本
the quick brown fox jumps over the lazy dog
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
ENCODE.txt 為空白,因為文本將被復制和編碼
下面的字典
code = {'A':'1',
'a':'@',
'B':'!',
'b':'#',
'C':'3',
'c':'$',
'D':'4',
'd':'^',
'E':'<',
'e':'?',
'F':'>',
'f':',',
'G':'5',
'g':'/',
'H':'%',
'h':']',
'I':'[',
'i':'£',
'J':'|',
'j':'*',
'K':'-',
'k':' ',
'L':'8',
'l':')',
'M':'9',
'm':'(',
'N':'&',
'n':'7',
'O':';',
'o':'`',
'P':'0',
'p':'_',
'Q':'"',
'q':'~',
'R':'.',
'r':'2',
'S':'6',
's':'8',
'T':'7',
't':'=',
'U':'[',
'u':'>',
'V':'{',
'v':';',
'W':'}',
'w':':',
'X':'é',
'x':'?',
'Y':'?',
'y':'¤',
'Z':'§',
'z':'μ'}
uj5u.com熱心網友回復:
for x in fileData:迭代文本行。您需要類似以下內容才能一次讀取一個字符:
while (x := fileData.read(1)):
但是還有str.translate和str.maketranswhich 是 string 的內置方法來生成查找表并執行翻譯,因此您可以讀取整個檔案并有效地翻譯:
Python 3.10 示例:
xlat = str.maketrans('AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz',
'1@!#3$4^<?>,5/%][£|*- 8)9(&7;`0_"~.2687=[>{;}:é??¤§μ')
with (open('EXAMPLE.txt', 'r') as fileData,
open('ENCODE.txt', 'w') as f):
encrypt = fileData.read().translate(xlat)
f.write(encrypt)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/424479.html
