Esto está demostrando ser una transición aproximada hacia Python. ¿Que esta pasando aqui?:
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()
El archivo de salida se ve como:
test string
y luego me sale este error:
b'decryption successful\n' Traceback (most recent call last): File ".../Project.py", line 36, in f.write (plaintext + '\n') TypeError: can't concat bytes to str
subprocess.check_output()
devuelve un bytestring.
En Python 3, no hay una conversión implícita entre los objetos Unicode ( str
) y los objetos de bytes
. Si conoce la encoding de la salida, puede .decode()
para obtener una cadena, o puede convertir el \n
que desea agregar a los bytes
con "\n".encode('ascii')
subprocess.check_output () devuelve bytes.
así que necesitas convertir ‘\ n’ a bytes también:
f.write (plaintext + b'\n')
espero que esto ayude