No puedo concat bytes a str

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