À l'aide de csvreader à l'encontre d'un fichier au format gzip en Python
J'ai un tas de format de fichiers CSV que je voudrais ouvrir pour l'inspection à l'aide de Python est construit en CSV reader. J'aimerais le faire sans avoir d'abord manuellement les décompresser sur le disque. Je suppose que je veux en quelque sorte obtenir un flux de données pour les données non compressées, et de les remettre dans le CSV reader. Est-ce possible en Python?
- En plus de la native Python solutions ici,
pandas
paquet aread_csv
lecteur avec gzip soutien
Vous devez vous connecter pour publier un commentaire.
Utiliser le
gzip
module:filename='tzaman.csv'
puis sa fait fichiertzaman.csv
qui est un fichier d'archive, et contient un autre fichiertzaman.csv
qui est en fait un fichier csv. si nous le nom queabc.zip
puis sa ajouteabc.zip
qui est un zip et contient un fichierabc.zip
qui est en fait un fichier csv. Que faire?__enter__/__exit__()
méthodes, mais c'est mieux de faire la vraie chosegzip.open
appel.J'ai essayé la version ci-dessus pour l'écriture et la lecture et ça ne fonctionne pas en Python 3.3, en raison des "octets" erreur. Cependant, après quelques essais et erreurs que j'ai pu obtenir à la suite de travaux. Peut-être qu'il aide aussi les autres:
Comme amohr l'indique, les ouvrages suivants: les
io.BufferedReader
qui pourrait être plus rapide selon certains repères. Enroulez simplementgzip.open
avecio.BufferedReader
rendantwith io.BufferedReader(gzip.open("test.gz", 'r')) as file:
csv.reader
a beaucoup d'options pour personnaliser le format docs.python.org/3.6/library/csv.html#csv-fmt-paramsune solution plus complète:
maintenant, vous pouvez l'utiliser comme ceci:
EDIT: suite au commentaire ci-dessous, une approche plus simple:
qui vous permet ensuite
__enter_/__exit__()
contexte-méthodes du gestionnaire de sorte qu'il peut être utilisé avecwith
déclaration.