Lire un fichier (ascii, csv, etc) en python (tutoriel)

Open Science Notebook - Articles

Lire un fichier (ascii, csv, etc) en python (tutoriel)

by Daidalos on February 19, 2014


Introduction

Dans ce tutoriel nous allons voir comment lire avec python différents types de formats de fichier.

Commet lire un simple fichier texte/ascii ?

Le fichier le plus couramment rencontré est souvent un simple fichier texte en ascii (C'est quoi le ascii ? Lien externe). Pour lire ce type de fichier, python est capable de le faire par lui même sans importer aucun module. Prenons l'exemple d'un simple fichier texte ([attachment:223]), pour ouvrir ce fichier en mode lecture puis le fermer il suffit de taper les deux lignes de code suivantes:

f = open('file.txt', 'r')
do something 
f.closed

Pour l'instant on a juste ouvert et fermé le fichier. La première chose
que l'on peut tester est de remplacer "do something" par deux lignes de code
"print f" et "print type(f)", vows devez alors normalement obtenir quelque chose comme:

<open file 'File.txt', mode 'r' at 0x2b4180>
Type: <type 'file'>

qui donne quelques basiques informations comme: le fichier est ouvert en mode lecture ('r') et que son type pour python est 'file'. Maintenant on va voir comment obtenir directement le contenu du fichier. L'objet de type 'file' que l'on a ici intitulé f possède plusieurs "methods". La première "method" est "read()" qui permet d'accéder à l'ensemble du contenu du fichier. Par exemple en tapant la commande:

print f.read()

on affiche à l'écran l'ensemble du fichier. Il est aussi possible grâce a la "method": "readline()" d'afficher ligne par ligne le contenu du fichier comme par exemple"

print 'line 1: ',  f.readline()
print 'line 2: ',  f.readline()
print 'line 3: ',  f.readline()

il est importer de mentionner ici que chaque fois que vous faites appelle à "readline()" il passe à la ligne suivante. Pour revenir au début du fichier vous pouvez alors utiliser la "method": "seek()" comme ceci:

f.seek(0)

Pour terminer, pour obtenir le nombre de lignes du fichier et en affichant en même temps ligne par ligne le contenu de celui-ci, on peut écrire une simple boucle "for":

NumberOfLine = 0
for line in f:
    print line
    NumberOfLine += 1

sachant que l'objet f est itérable.

Notes:

Comment lire un fichier avec numpy ?

loadtxt (lien externe)

import numpy as np
data = np.loadtxt(FileName)

Comment lire un fichier csv ?

Commet lire un fichier excel (xls) ?

import xlrd
import numpy as np

workbook = xlrd.open_workbook('comp_pop_tests_parametriques.xls')
SheetNameList = workbook.sheet_names()
for i in np.arange( len(SheetNameList) ):
    print SheetNameList[i]

worksheet = workbook.sheet_by_name('dataset')
num_rows = worksheet.nrows 
num_cells = worksheet.ncols 
print 'num_rows, num_cells', num_rows, num_cells

curr_row = 0
while curr_row < num_rows:
    row = worksheet.row(curr_row)
    #print row, len(row), row[0], row[1]
    print 'Row: ', curr_row
    print row, len(row), row[0]
    curr_cell = 0
    while curr_cell < num_cells:
        # Cell Types: 0=Empty, 1=Text, 2=Number, 3=Date, 4=Boolean, 5=Error, 6=Blank
        cell_type = worksheet.cell_type(curr_row, curr_cell)
        cell_value = worksheet.cell_value(curr_row, curr_cell)
        print ' ', cell_type, ':', cell_value 
        curr_cell += 1
    curr_row += 1

Lien externe How to read els file in python ?

Python - Write to Excel Spreadsheet

Comment lire un fichier PSD ?

from PIL import Image, ImageSequence

im = Image.open("spam.psd")
layers = [frame.copy() for frame in ImageSequence.Iterator(im)]

How to setup application icon that shows up in Alt-Tab dialog when switching tasks on Windows?

Comment lire un fichier HDF ?

example pyhdf exemple

pyhdf page officielle

from pyhdf.SD import SD, SDC

myd021km = SD(myd021km_name, SDC.READ)
EV_250_Aggr1km_RefSB = myd021km.select('EV_250_Aggr1km_RefSB')
EV_250_Aggr1km_RefSB_data = EV_250_Aggr1km_RefSB.get()
you need to be logged in to post a comment