Estou tentando criar e salvar entradas do KeePass usando o pykeepass e salvando um arquivo .txt como anexo. No entanto, recebo um erro de digitação:
Traceback (most recent call last):
File "c:\Users\Simplicissimus\Documents\coding\directory\attachment.py", line 15, in <module>
entry.add_attachment('attachment.txt', f.read())
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Simplicissimus\AppData\Local\Programs\Python\Python313\Lib\site-packages\pykeepass\entry.py", line 163, in add_attachment
E.Key(filename),
~~~~~^^^^^^^^^^
File "src\\lxml\\builder.py", line 219, in lxml.builder.ElementMaker.__call__
TypeError: bad argument type: bytes(b'Lorem Ipsum bla bla bla\r\n')
(base) PS C:\Users\Simplicissimus\Documents\coding\directory>
Meu exemplo mínimo reproduzível é:
from pykeepass import PyKeePass
kp = PyKeePass('testDatabase.kdbx', password='passwort')
generalGroup = kp.find_groups(name='General',first=True)
entry = kp.add_entry(
generalGroup,
title='title',
username='username',
password= 'password',
)
with open('loremipsum.txt', 'rb') as f:
entry.add_attachment('attachment.txt', f.read())
kp.save()
(Todos os arquivos estão no mesmo diretório, o arquivo loremipsum.txt
contém a linha: "Lorem Impsum bla bla bla")
Como faço para converter o conteúdo de um arquivo .txt para bytes?
Estou usando o pykeepass versão: 4.1.0.post1, Keepass versão 2.58 e Python 3.13.