[Python] Récupérer type MIME d'un fichier CSV
enneibaf
-
enneibaf -
enneibaf -
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 !
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 !
Configuration: Windows XP Internet Explorer 7.0
6 réponses
-
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. -
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... :-/
-
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. -
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... -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Voilà... mon "Salut, mon coco !" peut très bien être du CVS, ou bien une simple phrase avec une virgule.
-