[Python] Récupérer type MIME d'un fichier CSV

Fermé
enneibaf - 3 janv. 2008 à 16:59
 enneibaf - 3 janv. 2008 à 17:30
Bonjour,

Je suis en train de développer un template en Python qui a besoin de vérifier si un fichier est bien de type CSV. Pour cela, j'ai écrit les lignes suivantes :

import mimestypes
ctype, encoding = mimetypes.guess_type('clients.csv')

Si je lance ce code avec un fichier Excel, par exemple, j'obtiens bien le type MIME correspond. Cependant, lorsque je teste avec, justement, un fichier CSV, j'obtiens l'erreur suivante : la fonction guess_type renvoie "None" comme valeur de ctype.

Est-ce que quelqu'un peut m'aider ?
Merci d'avance !
A voir également:

6 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
3 janv. 2008 à 17:07
None signifie qu'il n'a pas réussi à deviner le type MIME.

Tu pourrais le forcer toi-même:

import mimestypes
nom = 'clients.csv'
ctype, encoding = mimetypes.guess_type(nom)
if (not ctype) and nom.lower().endswith('.csv'):
    ctype = "text/csv"


Note que pour le CSV, les deux type MIME valides sont text/csv ou text/comma-separated-values (au choix).

Reste l'encodage, que tu ne peux pas deviner. L'information sur l'encodage doit être transmise avec le fichier, sans quoi le fichier est inexploitable.
0
Merci pour ta réponse ! Cependant, je suis tout de même étonnée qu'il renvoie "None" alors que le type MIME CSV fait partie des types définis par l'IANA... :-/
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
3 janv. 2008 à 17:14
Oui le type MIME CSV est défini, mais il n'arrive pas à le déterminer.

Un exemple: Le texte suivant est-il du CSV ?
Salut, mon coco !


Personne ne peut répondre à ça. Ni un programme, ni un humain.
Tout dépend de ce que c'est censé être.
0
OK, donc si je comprends bien, dans le cas du CSV, la fonction
mimetypes.guess_type(nom)
ne pourra jamais déceler si c'en est ou non...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
3 janv. 2008 à 17:28
Voilà... mon "Salut, mon coco !" peut très bien être du CVS, ou bien une simple phrase avec une virgule.
0
Merci pour toutes ces explications ! :-)
0