Afficher un message
Vieux 08/08/2007, 01h39   #22
fred
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

hg <hg@nospam.org> a écrit :

> Non: Pars du principe que c'est du binaire (donc ouvre en binaire) ... puis
> change d'avis si besoin est.

Bon, je fais une réponse groupée, hein, m'en voulez pas.

Il était une fois un fichier de paramètres qui contenait le type de
données à lire dans un fichier : ascii, binaire, et pour le binaire, le
format, int, float, double, plus tout un tas de choses follement
amusantes, j'en passe et des meilleurs.

Or il arrive que l'utilisateur (moi en l'occurence) à force de modifs à
droite par-ci, à gauche par-là, en arrive à se mélanger les doigts,
et que même s'il est précisé ascii dans le sus-dit fichier de paramètres,
et bien c'est en fait un fichier binaire qui passait par là qui est lu.
Ou l'inverse.
Donc plus loin dans le code, badaboum, patatra, ça râle, toussa.

Les fichiers en question sont des tableaux lus :

- par readlines() quand c'est de l'ascii ;

- par fread() de scipy.io.numpyio quand c'est du binaire (parce que
c'est ici qu'on m'a dit de l'utiliser et que j'en suis très content, na).

Donc l'ouvrir tout le temps en binaire, admettons.

Mais ça ne résout guère le problème.
L'appel de readlines() ou fread() est fonction de ce que l'utilisateur
a bien gentiment tapé dans son fichier de paramètres, mais point du type
réel du fichier en question.

Donc à ce stade, je vois deux solutions :

- soit me tenter des try/except sur fread ou readlines, et encore, je ne
suis pas sûr que le résultat soit probant ; disons que j'aimerais bien
qu'il me donne la réponse avant qu'il se soit tapé tout le fichier,
parce qu'il peut être gros, le bougre.

- soit utiliser un file() pythonné, ce qui me plaît mieux.

Ceci dit, en posant ma question, je pensais trouver une fonction native toute
faite pour ce genre de chose. C'est la raison pour.

Merci à tous.

J'investiguerai demain.

--
http://scipy.org/FredericPetit
  Réponse avec citation
 
Page generated in 0,05169 seconds with 9 queries