事实证明,这是对python的粗略过渡。这里发生了什么?:
f = open( 'myfile', 'a+' )
f.write('test string' + '\n')
key = "pass:hello"
plaintext = subprocess.check_output(['openssl', 'aes-128-cbc', '-d', '-in', test, '-base64', '-pass', key])
print (plaintext)
f.write (plaintext + '\n')
f.close()
输出文件如下所示:
test string
然后我得到这个错误:
b'decryption successful\n'
Traceback (most recent call last):
File ".../Project.py", line 36, in <module>
f.write (plaintext + '\n')
TypeError: can't concat bytes to str
最佳答案
subprocess.check_output()
返回一个字节串。
在Python 3中,unicode(str
)对象和bytes
对象之间没有隐式转换。如果您知道输出的编码,则可以对其进行.decode()
以获得字符串,或者可以使用\n
将要添加的bytes
转换为"\n".encode('ascii')
。
关于python - 无法将字节连接到str,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21916888/