Dans la meme optique, j'ai appliqué la méthode 'bourrin'... j'ai commenté la ligne contenant self.nfields -= 1 dans le fichier pyfits.py et là, tout marche à merveille. La colonne est bien effacée... maintenant, j'ignore s'il y a des conséquences facheuses et subtiles.
J'arrive à la conclusion, soit il y a un problème avec le del_col ou soit il y a une subtilité dans son usage. Mais manifestement sur tout le web, je suis le seul à vouloir effacer des colonnes d'une table fits puisque je n'ai trouvé aucun exemple où quelqu'un utilise le del_col ...
Suite à ta proposition, j'ai ouvert le fichier pyfits.py pour comprendre ce qui se passe. Voici le code du del_col qui est ce que tu as renseigné dans ton message:
2910 def del_col(self, col_name):
2911 """Delete (the definition of) one Column."""
2912 indx = _get_index(self.names, col_name)
2913
2914 for cname in _commonNames:
2915 attr = getattr(self, cname+'s')
2916 del attr[indx]
2917
2918 del self._arrays[indx]
2919 self._nfields -= 1
A part le fait que l'instruction qui devrait marché,puisque la procedure ne retourne rien, est
listcolumns.del_col("toto")
Mais j'obtiens toujours le meme message d'erreur. Il a l'air ne pas aimer le _nfields et j'ignore pourquoi.
[^] # Un piste ???
Posté par KrysKhales . En réponse au message librairie pyfits: problème avec del_col. Évalué à 1.
J'arrive à la conclusion, soit il y a un problème avec le del_col ou soit il y a une subtilité dans son usage. Mais manifestement sur tout le web, je suis le seul à vouloir effacer des colonnes d'une table fits puisque je n'ai trouvé aucun exemple où quelqu'un utilise le del_col ...
[^] # Re: trouvé ça
Posté par KrysKhales . En réponse au message librairie pyfits: problème avec del_col. Évalué à 1.