Python 我能';我不知道如何修复TypeError:can';t concat str到字节的平均值

Python 我能';我不知道如何修复TypeError:can';t concat str到字节的平均值,python,byte,Python,Byte,我编写了一个函数来查看对给定文本文件的加密。下面的代码是函数的一小部分 #pad it before encrypting it elif len(chunk) % 16 != 0: chunk += ' ' * (16 - len(chunk) % 16) #write encrypted data into output file out_file.write(en

我编写了一个函数来查看对给定文本文件的加密。下面的代码是函数的一小部分

            #pad it before encrypting it
            elif len(chunk) % 16 != 0:
                chunk += ' ' * (16 - len(chunk) % 16)
            #write encrypted data into output file
            out_file.write(encryptor.encrypt(chunk))
每当我尝试使用该函数时,就会出现一个错误,指向最后一行 “TyprError:无法将str转换为字节”。我不确定我需要做什么来修复这个错误。我尝试了一些方法,但最终导致了更多类似的错误。任何指导都将不胜感激。 加密机在下面

encryptor  = PKCS1_OAEP.new(pub_key)

您正在尝试混合和匹配不兼容的数据类型。下面是一个将抛出相同错误的示例:

str1 = bytes(123)
str2 = str(123)
str1 + str2

浏览您的示例,找出您试图将字节值转换为str值并使其与类型匹配的位置。

您的加密方法
encryptor.encrypt()
很可能接受
字节
作为参数,而不是
str
。它也很可能返回
字节。因此,我建议您使用以下
encode/decode
方法(utf-8
编码示例):


您可能需要
b'
,而不是
'
@chepner我以前试过这个,但它给了我TypeError:必须是str,而不是bytesDo
encryptor。encrypt
需要字符串吗?从你发布的代码中无法分辨。但是如果
type(chunk)
bytes
,那么您必须使用
b'
来启动,因为
+
不支持将
bytes
对象与
str
对象连接起来。另一个错误是另一个问题。encryptor=PKCS1_OAEP.new(pub_key),这是加密程序。它只是用来加密数据的公钥。你的填充器中的乘数可以是负数吗?我也厌倦了这个,它给了我一个TypeError:write()参数必须是str,而不是strbytes@EddieWhite这是因为您的
encrypt
方法返回一个
bytes
值:您必须对其进行解码。。。我已经更新了我的帖子。当我解码它时,它需要一整圈的时间才能返回到cant concat str to bytes错误,因为它将解码放在了错误的位置。它仍然给我一个错误,但它与以前的不同。
 out_file.write(encryptor.encrypt(chunk.encode('utf-8')).decode('utf-8'))