PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.python > lecture fichier : ascii ou binaire ?
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
lecture fichier : ascii ou binaire ?

Réponse
 
LinkBack Outils de la discussion
Vieux 07/08/2007, 15h18   #1
fred
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut lecture fichier : ascii ou binaire ?


Bonjour,

Ja voudrais savoir si un fichier donné est écrit en ascii ou en binaire.

Comment faire cela ?

Merci d'avance.

--
http://scipy.org/FredericPetit
  Réponse avec citation
Vieux 07/08/2007, 15h29   #2
hg
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

fred wrote:

>
> Bonjour,
>
> Ja voudrais savoir si un fichier donné est écrit en ascii ou en binaire.
>
> Comment faire cela ?
>
> Merci d'avance.
>
> --
> http://scipy.org/FredericPetit



analyser son contenu.

hg

  Réponse avec citation
Vieux 07/08/2007, 15h29   #3
hg
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

fred wrote:

>
> Bonjour,
>
> Ja voudrais savoir si un fichier donné est écrit en ascii ou en binaire.
>
> Comment faire cela ?
>
> Merci d'avance.
>
> --
> http://scipy.org/FredericPetit



analyser son contenu.

hg

  Réponse avec citation
Vieux 07/08/2007, 15h31   #4
fred
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

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

> analyser son contenu.

Sauf que pour ouvrir un fichier, avant de faire quoique ce soit,
il faut spécifier si c'est un fichier binaire ou pas (paramètre 'b').
Me goure-je ?

--
http://scipy.org/FredericPetit
  Réponse avec citation
Vieux 07/08/2007, 15h31   #5
fred
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

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

> analyser son contenu.

Sauf que pour ouvrir un fichier, avant de faire quoique ce soit,
il faut spécifier si c'est un fichier binaire ou pas (paramètre 'b').
Me goure-je ?

--
http://scipy.org/FredericPetit
  Réponse avec citation
Vieux 07/08/2007, 15h48   #6
Laurent Pointal
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

fred a écrit :
> hg <hg@nospam.org> a écrit :
>
>> analyser son contenu.

> Sauf que pour ouvrir un fichier, avant de faire quoique ce soit,
> il faut spécifier si c'est un fichier binaire ou pas (paramètre 'b').
> Me goure-je ?


Pour analyser le contenu, le mieux est de commencer à l'ouvrir en
binaire... après, faudrais savoir si c'est n'importe quel fichier [aye,
voir la commande file sous Linux], ou bien si tu as une liste bornée (et
pas trop délirante) de formats attendus...


  Réponse avec citation
Vieux 07/08/2007, 15h48   #7
Laurent Pointal
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

fred a écrit :
> hg <hg@nospam.org> a écrit :
>
>> analyser son contenu.

> Sauf que pour ouvrir un fichier, avant de faire quoique ce soit,
> il faut spécifier si c'est un fichier binaire ou pas (paramètre 'b').
> Me goure-je ?


Pour analyser le contenu, le mieux est de commencer à l'ouvrir en
binaire... après, faudrais savoir si c'est n'importe quel fichier [aye,
voir la commande file sous Linux], ou bien si tu as une liste bornée (et
pas trop délirante) de formats attendus...


  Réponse avec citation
Vieux 07/08/2007, 15h49   #8
Eric Brunel
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

On Tue, 07 Aug 2007 16:31:44 +0200, fred <fredantispam@free.fr> wrote:

> hg <hg@nospam.org> a écrit :
>
>> analyser son contenu.

> Sauf que pour ouvrir un fichier, avant de faire quoique ce soit,
> il faut spécifier si c'est un fichier binaire ou pas (paramètre 'b').
> Me goure-je ?


Le seul intérêt de ce mode est que sous Windows, le caractère CR ajouté au
LF pour chaque fin de ligne est automatiquement ignoré. Ce comportement
"magique" étant fréquemment une source d'emmm... pas possible (ceux qui
ont essayé de faire des tell et des seek sur les fichiers texte sous
Windows ne me diront pas le contraire...), il est très souvent conseillé
d'ouvrir systématiquement les fichiers en mode binaire et de virer
soi-même le CR à la main au besoin. Quand on écrit, cela n'a de plus en
général aucune importance: même si on ne met qu'un LF à la fin de chaque
ligne d'un fichier texte, la plupart des éditeurs sauront quand même
l'ouvrir sans problème, à l'exception notable - et probablement unique -
du Bloc-notes de Windows.

La réponse à ta question initiale est donc: on s'en fout; on ouvre en
binaire et c'est tout...

HTH
--
python -c "print ''.join([chr(154 - ord(c)) for c in
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"
  Réponse avec citation
Vieux 07/08/2007, 15h49   #9
Eric Brunel
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

On Tue, 07 Aug 2007 16:31:44 +0200, fred <fredantispam@free.fr> wrote:

> hg <hg@nospam.org> a écrit :
>
>> analyser son contenu.

> Sauf que pour ouvrir un fichier, avant de faire quoique ce soit,
> il faut spécifier si c'est un fichier binaire ou pas (paramètre 'b').
> Me goure-je ?


Le seul intérêt de ce mode est que sous Windows, le caractère CR ajouté au
LF pour chaque fin de ligne est automatiquement ignoré. Ce comportement
"magique" étant fréquemment une source d'emmm... pas possible (ceux qui
ont essayé de faire des tell et des seek sur les fichiers texte sous
Windows ne me diront pas le contraire...), il est très souvent conseillé
d'ouvrir systématiquement les fichiers en mode binaire et de virer
soi-même le CR à la main au besoin. Quand on écrit, cela n'a de plus en
général aucune importance: même si on ne met qu'un LF à la fin de chaque
ligne d'un fichier texte, la plupart des éditeurs sauront quand même
l'ouvrir sans problème, à l'exception notable - et probablement unique -
du Bloc-notes de Windows.

La réponse à ta question initiale est donc: on s'en fout; on ouvre en
binaire et c'est tout...

HTH
--
python -c "print ''.join([chr(154 - ord(c)) for c in
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"
  Réponse avec citation
Vieux 07/08/2007, 15h54   #10
Laurent Pointal
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

Eric Brunel a écrit :
> On Tue, 07 Aug 2007 16:31:44 +0200, fred <fredantispam@free.fr> wrote:
>
>> hg <hg@nospam.org> a écrit :
>>
>>> analyser son contenu.

>> Sauf que pour ouvrir un fichier, avant de faire quoique ce soit,
>> il faut spécifier si c'est un fichier binaire ou pas (paramètre 'b').
>> Me goure-je ?

>
> Le seul intérêt de ce mode est que sous Windows, le caractère CR ajouté
> au LF pour chaque fin de ligne est automatiquement ignoré. Ce
> comportement "magique" étant fréquemment une source d'emmm... pas
> possible (ceux qui ont essayé de faire des tell et des seek sur les
> fichiers texte sous Windows ne me diront pas le contraire...), il est
> très souvent conseillé d'ouvrir systématiquement les fichiers en mode
> binaire et de virer soi-même le CR à la main au besoin. Quand on écrit,
> cela n'a de plus en général aucune importance: même si on ne met qu'un
> LF à la fin de chaque ligne d'un fichier texte, la plupart des éditeurs
> sauront quand même l'ouvrir sans problème, à l'exception notable - et
> probablement unique - du Bloc-notes de Windows.
>
> La réponse à ta question initiale est donc: on s'en fout; on ouvre en
> binaire et c'est tout...


Ou, si c'est un fichier texte, ouvre le en mode "Universel" et laisse
Python se débrouiller avec les retours à la ligne Mac/Win/Unix...

  Réponse avec citation
Vieux 07/08/2007, 15h54   #11
Laurent Pointal
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

Eric Brunel a écrit :
> On Tue, 07 Aug 2007 16:31:44 +0200, fred <fredantispam@free.fr> wrote:
>
>> hg <hg@nospam.org> a écrit :
>>
>>> analyser son contenu.

>> Sauf que pour ouvrir un fichier, avant de faire quoique ce soit,
>> il faut spécifier si c'est un fichier binaire ou pas (paramètre 'b').
>> Me goure-je ?

>
> Le seul intérêt de ce mode est que sous Windows, le caractère CR ajouté
> au LF pour chaque fin de ligne est automatiquement ignoré. Ce
> comportement "magique" étant fréquemment une source d'emmm... pas
> possible (ceux qui ont essayé de faire des tell et des seek sur les
> fichiers texte sous Windows ne me diront pas le contraire...), il est
> très souvent conseillé d'ouvrir systématiquement les fichiers en mode
> binaire et de virer soi-même le CR à la main au besoin. Quand on écrit,
> cela n'a de plus en général aucune importance: même si on ne met qu'un
> LF à la fin de chaque ligne d'un fichier texte, la plupart des éditeurs
> sauront quand même l'ouvrir sans problème, à l'exception notable - et
> probablement unique - du Bloc-notes de Windows.
>
> La réponse à ta question initiale est donc: on s'en fout; on ouvre en
> binaire et c'est tout...


Ou, si c'est un fichier texte, ouvre le en mode "Universel" et laisse
Python se débrouiller avec les retours à la ligne Mac/Win/Unix...

  Réponse avec citation
Vieux 07/08/2007, 15h58   #12
Avell Diroll
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

fred wrote:
> hg <hg@nospam.org> a écrit :
>
>> analyser son contenu.

> Sauf que pour ouvrir un fichier, avant de faire quoique ce soit,
> il faut spécifier si c'est un fichier binaire ou pas (paramètre 'b').
> Me goure-je ?
>


Il est tout a fait possible d'ouvrir un fichier ascii en binaire (cas 0)
et un fichier binaire en ascci (cas 1).

Dans le cas 0, on va pouvoir lire bit à bit des octets de caractères
ascii (cf. tables de conversion quelconque).

Dans le cas 1, on obtiendra une suite de caractère bizarres (pour avoir
un exemple rapide il suffit de faire: cat mon_fichier_binaire dans un
terminal).

il n'existe pas à ma connaissance de méthode absolue pour identifier la
binarité (ou la asciification tant qu'on y est) d'un fichier hormis
l'analyse globale du contenu.

Cependant il est souvent de mise de lire les premiers octets du fichier
et de vérifier leur strict appartenance au subset ascii.

Une autre méthode (sous *nix) est de faire appel à l'utilitaire "file"
qui vérifie les premiers "magic bits" d'un fichier censés décrire son
contenu ... je ne sais pas si un module python reprend les
fonctionnalités de file ...

Bonne continuation

Ju
--
The real problem is not whether machines think, but whether men do.
- B.F. Skinner
  Réponse avec citation
Vieux 07/08/2007, 15h58   #13
Avell Diroll
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

fred wrote:
> hg <hg@nospam.org> a écrit :
>
>> analyser son contenu.

> Sauf que pour ouvrir un fichier, avant de faire quoique ce soit,
> il faut spécifier si c'est un fichier binaire ou pas (paramètre 'b').
> Me goure-je ?
>


Il est tout a fait possible d'ouvrir un fichier ascii en binaire (cas 0)
et un fichier binaire en ascci (cas 1).

Dans le cas 0, on va pouvoir lire bit à bit des octets de caractères
ascii (cf. tables de conversion quelconque).

Dans le cas 1, on obtiendra une suite de caractère bizarres (pour avoir
un exemple rapide il suffit de faire: cat mon_fichier_binaire dans un
terminal).

il n'existe pas à ma connaissance de méthode absolue pour identifier la
binarité (ou la asciification tant qu'on y est) d'un fichier hormis
l'analyse globale du contenu.

Cependant il est souvent de mise de lire les premiers octets du fichier
et de vérifier leur strict appartenance au subset ascii.

Une autre méthode (sous *nix) est de faire appel à l'utilitaire "file"
qui vérifie les premiers "magic bits" d'un fichier censés décrire son
contenu ... je ne sais pas si un module python reprend les
fonctionnalités de file ...

Bonne continuation

Ju
--
The real problem is not whether machines think, but whether men do.
- B.F. Skinner
  Réponse avec citation
Vieux 07/08/2007, 16h07   #14
Avell Diroll
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

Avell Diroll wrote:
> Une autre méthode (sous *nix) est de faire appel à l'utilitaire "file"
> qui vérifie les premiers "magic bits" d'un fichier censés décrire son
> contenu ... je ne sais pas si un module python reprend les
> fonctionnalités de file ...


http://packages.debian.org/unstable/python/python-magic
http://www.darwinsys.com/file/


Et même une implémentation en pur python ..?
http://www.demonseed.net/~jp/code/magic.py

....

Ju
--
I never let my schooling interfere with my education.
- Mark Twain
  Réponse avec citation
Vieux 07/08/2007, 16h07   #15
Avell Diroll
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

Avell Diroll wrote:
> Une autre méthode (sous *nix) est de faire appel à l'utilitaire "file"
> qui vérifie les premiers "magic bits" d'un fichier censés décrire son
> contenu ... je ne sais pas si un module python reprend les
> fonctionnalités de file ...


http://packages.debian.org/unstable/python/python-magic
http://www.darwinsys.com/file/


Et même une implémentation en pur python ..?
http://www.demonseed.net/~jp/code/magic.py

....

Ju
--
I never let my schooling interfere with my education.
- Mark Twain
  Réponse avec citation
Vieux 07/08/2007, 17h15   #16
Méta-MCI \(MVP\)
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

Bonsoir !

> savoir si un fichier donné est écrit en ascii ou en
> binaire


C'est quoi un fichier en ascii ?

Vu que, dans la codification ASCII, il y a des caractères
comme 9 [TAB], 13 [CARRIAGE-RETURN], 27 [ESCAPE]
Et que, avec les ASCII-étendus, on utilise les 256 octets
possibles.

Comment distingue-t'on du binaire relativement à de l'ASCII
étendu ? (par exemple, le Latin-1)

Conclusion : comme cela t'a été suggéré, ouvrir en binaire
règle le problème.


@+

MCI


  Réponse avec citation
Vieux 07/08/2007, 17h15   #17
Méta-MCI \(MVP\)
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

Bonsoir !

> savoir si un fichier donné est écrit en ascii ou en
> binaire


C'est quoi un fichier en ascii ?

Vu que, dans la codification ASCII, il y a des caractères
comme 9 [TAB], 13 [CARRIAGE-RETURN], 27 [ESCAPE]
Et que, avec les ASCII-étendus, on utilise les 256 octets
possibles.

Comment distingue-t'on du binaire relativement à de l'ASCII
étendu ? (par exemple, le Latin-1)

Conclusion : comme cela t'a été suggéré, ouvrir en binaire
règle le problème.


@+

MCI


  Réponse avec citation
Vieux 07/08/2007, 19h28   #18
Anthony
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

fred a écrit :
> Bonjour,
>
> Ja voudrais savoir si un fichier donné est écrit en ascii ou en binaire.
>
> Comment faire cela ?
>
> Merci d'avance.
>


Fais une copie en lisant le contenu en mode ascii et compare les deux
fichiers
  Réponse avec citation
Vieux 07/08/2007, 19h28   #19
Anthony
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

fred a écrit :
> Bonjour,
>
> Ja voudrais savoir si un fichier donné est écrit en ascii ou en binaire.
>
> Comment faire cela ?
>
> Merci d'avance.
>


Fais une copie en lisant le contenu en mode ascii et compare les deux
fichiers
  Réponse avec citation
Vieux 07/08/2007, 21h30   #20
hg
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

fred wrote:

> hg <hg@nospam.org> a écrit :
>
>> analyser son contenu.

> Sauf que pour ouvrir un fichier, avant de faire quoique ce soit,
> il faut spécifier si c'est un fichier binaire ou pas (paramètre 'b').
> Me goure-je ?
>
> --
> http://scipy.org/FredericPetit


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

hg

  Réponse avec citation
Vieux 07/08/2007, 21h30   #21
hg
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

fred wrote:

> hg <hg@nospam.org> a écrit :
>
>> analyser son contenu.

> Sauf que pour ouvrir un fichier, avant de faire quoique ce soit,
> il faut spécifier si c'est un fichier binaire ou pas (paramètre 'b').
> Me goure-je ?
>
> --
> http://scipy.org/FredericPetit


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

hg

  Réponse avec citation
Vieux 08/08/2007, 00h39   #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
Vieux 08/08/2007, 00h39   #23
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
Vieux 08/08/2007, 02h36   #24
hg
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

fred wrote:

> 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


Pas sûr de tout comprendre.

Mes 2 centimes:

1) Tu gardes tes anciennes routines et ne touches pas leurs codes
2) Tu rajoutes une fonction que tu appelles d'abord (ex: def Is_Binary
(file) ) qui te retourne oui ou non.
Cette dernière ouvre le fichier en binaire et le "parse" pour tenter de
deviner si le fichier est a passer côter binaire ou ascii ... puis le
ferme.

hg







  Réponse avec citation
Vieux 08/08/2007, 02h36   #25
hg
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: lecture fichier : ascii ou binaire ?

fred wrote:

> 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


Pas sûr de tout comprendre.

Mes 2 centimes:

1) Tu gardes tes anciennes routines et ne touches pas leurs codes
2) Tu rajoutes une fonction que tu appelles d'abord (ex: def Is_Binary
(file) ) qui te retourne oui ou non.
Cette dernière ouvre le fichier en binaire et le "parse" pour tenter de
deviner si le fichier est a passer côter binaire ou ascii ... puis le
ferme.

hg







  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 21h01.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,29515 seconds with 33 queries