[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 !
A voir également:
- [Python] Récupérer type MIME d'un fichier CSV
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
6 réponses
None signifie qu'il n'a pas réussi à deviner le type MIME.
Tu pourrais le forcer toi-même:
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.
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 ?
Personne ne peut répondre à ça. Ni un programme, ni un humain.
Tout dépend de ce que c'est censé être.
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