Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fonction read avec fuse

1 réponse
Avatar
patatetom
bonjour,

mon module xb360hd me permet de parcourir une partition de type xtaf (xbox3=
60) et d'extraire des fichiers.

un fichier pouvant =C3=AAtre volumineux (et discontinu), la fonction readFi=
le du module retourne un g=C3=A9n=C3=A9rateur.

depuis une console, je peux "facilement" copier un fichier avec ce bout de =
code :

partition =3D xb360hd.Xtaf('/dev/sdb')
with open('/tmp/copie', 'wb') as copy:
for data in partition.readFile(partition.getEntry('/chemin/vers/un/fichier=
')):
copy.write(data)

jusque l=C3=A0 tout va bien.

je tente maintenant de rendre le contenu de la partition accessible "nature=
llement" avec mon module xtaffuse, mais je bloque sur la fonction read de f=
usepy et ne vois pas comment faire pour retourner le contenu du fichier san=
s avoir =C3=A0 le lire int=C3=A9gralement et le stocker temporairement en v=
ariable et donc en m=C3=A9moire.

merci d'avance pour vos conseils, vos pistes, etc...
=20
(si la fonction read du module xtaffuse retourne directement le g=C3=A9n=C3=
=A9rateur issu de la fonction readFile du module xb360hd, j'ai l'erreur "ob=
ject of type 'generator' has no len()" / je ne souhaite pas utiliser un fic=
hier temporaire entre readFile du module xb360hd et read du module xtaffuse=
)

xb360hd : https://github.com/patatetom/xtaf/blob/master/xb360hd.py
xtaffuse : https://github.com/patatetom/xtaf/blob/master/xtaffuse.py
fusepy : https://github.com/fusepy/fusepy
xtaf : http://www.free60.org/wiki/FATX

1 réponse

Avatar
patatetom
après quelques tests, il apparait que le fichier est lu par morceaux :
read[0] 131072 bytes from 0 flags: 0x8000
read[0] 131072 bytes from 131072 flags: 0x8000
read[0] 131072 bytes from 262144 flags: 0x8000
...
read[0] 8192 bytes from 917504 flags: 0x8000
read[0] 4096 bytes from 925696 flags: 0x8000
le problème que je soulevais ne se pose donc pas en pratique.
j'apprécierais votre feedback si vous avez l'occasion d'essayer mon mo dule xtaffuse ;-)