You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

加密解密程序开发:如何提取文本文件字符并通过字典密钥替换为对应值?

解决文本字符逐个匹配字典替换的加密/解密问题

嘿,我完全懂你的处境——手里有密码字典,也能读文件,但卡在了逐个字符匹配替换这一步对吧?其实这个操作没你想的复杂,我用Python给你举个具体的例子,一步步来:

首先明确两种场景的字典处理

  • 加密场景:你的字典应该是「明文字符: 密文字符」的映射,比如:
    cipher_dict = {
        'a': 'k', 'b': 'p', 'c': 'x',
        ' ': '^', '!': '*'  # 可以包含空格、标点等特殊字符
    }
    
  • 解密场景:如果要把密文转明文,需要把字典反转成「密文字符: 明文字符」,用字典推导式就能快速搞定:
    decipher_dict = {v: k for k, v in cipher_dict.items()}
    

核心步骤:读取→逐个处理→写入

  1. 读取文本文件
    用with语句安全读取文件,自动处理文件关闭:

    with open('input.txt', 'r', encoding='utf-8') as input_file:
        original_text = input_file.read()
    

    这里original_text是一个字符串,而字符串本身就是可迭代的,直接循环就能逐个取出字符。

  2. 逐个字符匹配替换
    用列表推导式高效处理每个字符,dict.get()方法完美解决「字符不在字典里」的情况(比如换行符、陌生标点),直接保留原字符:

    # 加密示例
    encrypted_chars = [cipher_dict.get(char, char) for char in original_text]
    encrypted_text = ''.join(encrypted_chars)  # 把列表转回字符串
    
    # 解密示例
    # decrypted_chars = [decipher_dict.get(char, char) for char in original_text]
    # decrypted_text = ''.join(decrypted_chars)
    
  3. 写入结果文件
    同样用with语句写入处理后的文本:

    with open('encrypted_output.txt', 'w', encoding='utf-8') as output_file:
        output_file.write(encrypted_text)
    

完整示例代码

把这些步骤整合起来,就是一个可运行的加密程序:

def encrypt_text(input_path, output_path, cipher_dict):
    # 读取文件
    with open(input_path, 'r', encoding='utf-8') as f:
        text = f.read()
    # 处理每个字符
    encrypted_text = ''.join([cipher_dict.get(char, char) for char in text])
    # 写入结果
    with open(output_path, 'w', encoding='utf-8') as f:
        f.write(encrypted_text)

# 定义密码字典
my_cipher = {'a': 'm', 'b': 'n', 'c': 'o', ' ': '#', '.': '!'}
# 调用函数加密
encrypt_text('my_input.txt', 'my_encrypted.txt', my_cipher)

这个思路的关键就是利用字符串的可迭代性,直接遍历每个字符,再结合dict.get()做安全的映射替换,既简单又高效。如果有特殊需求(比如区分大小写、处理非ASCII字符),只需要调整字典或者在遍历前做字符转换(比如char.lower())就行。

内容的提问来源于stack exchange,提问作者Nick Nasty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:35:34