Python中open.write()写入RSA公私钥时报TypeError如何解决?
错误原因说明
你遇到的报错有两个核心问题:
write()方法传参错误
Python的文件对象write()方法只能接收单个字符串参数,你像print()一样用逗号分隔传入字符串和变量是错误用法,必须先把要写入的内容拼接成完整字符串再传入。- 入口判断语法错误
你写的if _name_ == 'main':是错误写法,正确的主程序入口判断应该是if __name__ == '__main__':,变量前后各需要2个下划线,匹配的值也要对应带双下划线,否则这段生成密钥写入文件的代码块根本不会触发执行。
修正后的代码片段
把密钥写入部分的代码替换为以下内容即可:
if __name__ == '__main__': public_key,private_key = generate_keyPairs() print("Public_Key(Traditional_RSA): ",public_key) # 拼接成单个字符串再传入write details_file.write(f"Public_Key(Traditional_RSA): {public_key}\n") print("Private_Key(Traditional_RSA): ",private_key) details_file.write(f"Private_Key(Traditional_RSA): {private_key}\n")
你也可以用你之前写的%格式化方式拼接,只要保证传给write()的只有一个字符串参数即可。
内容的提问来源于stack exchange,提问作者rishabh goyal
相关产品推荐
相关产品推荐

