la lecture de goudron contenu du fichier sans décompacter il, dans le script python
J'ai un fichier tar, qui a le nombre de fichiers qu'il contient.
J'ai besoin d'écrire un script python qui va lire le contenu des fichiers et donne le comte o nombre de caractères, y compris le nombre total de lettres, des espaces, des caractères de saut de ligne, tout, sans décompressez le fichier tar.
- Comment pouvez-vous compter les caractères/lettres/espaces/everthing sans extraire ceux d'ailleurs?
- c'est précisément à la question posée.
Vous devez vous connecter pour publier un commentaire.
vous pouvez utiliser getmembers()
Après cela, vous pouvez utiliser extractfile() pour extraire des membres en tant que fichier objet. Juste un exemple
Avec le fichier objet "f" dans l'exemple ci-dessus, vous pouvez utiliser read(), readlines (), etc.
'r|'
option.tar.members = []
. Plus d'Infos ici: bit.ly/JKXrg6tar.getmembers()
être appelée plusieurs fois lors de la mettre dans unfor member in tar.getmembers()
boucle?extractfile
ne fournit pas unencoding
attribut, si vous avez besoin d'un flux de texte, vous pouvez le fairef = codecs.getreader("utf-8")(f)
.vous devez utiliser le tarfile module. Plus précisément, vous utilisez une instance de la classe TarFile d'accès au fichier, puis accéder à l'noms avec TarFile.getnames a()
Si vous souhaitez lire le contenu, puis vous utilisez cette méthode
myFile = myArchive.extractfile( dict(zip(myArchive.getnames(), myArchive.getmembers()))['path/to/file'] ).read()
Une mise en application des méthodes mentionnées par @stefano-borini
Accéder à un des archives tar membre par nom de fichier comme
Crédits:
dict(zip(
de https://stackoverflow.com/a/209854/1695680tarfile.getnames
de https://stackoverflow.com/a/2018523/1695680