IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Obtenir des informations sur un fichier


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Points : 413
    Points
    413
    Par défaut Obtenir des informations sur un fichier
    Bonjour,
    Je suis sous Windows et quand je fais "propriété" sur un fichier (ne décrochez pas, le rapport avec python va venir) j'ai différentes informations du genre taille, date de la dernière modification, logiciel d'ouverture par défaut, durée pour une vidéo, dimensions pour une image....
    Et je me demandais s'il était possible d'obtenir le maximum de ces informations par une fonction python du module os ou autre.
    Je sais par exemple obtenir la taille d'un fichier mais ce n'est pas très... propre comme manière de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    f=open('fichier.ext','wb')
    len(f.read)
    Donc je me demandais si c'était possible d'obtenir (rapidement de préférence, j'ai neuf fichiers à faire en quelques secondes comme ça) les deux premières informations au moins pour que je puisses les exploiter. Et pareil pour les dossiers (quoique je peux obtenir le nombre d'éléments avec listdir).

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Bonjour

    je l'utilise sous Unix/Linux mais, sous Windows je pense que ça fonctionne tout aussi bien. os.stat te fournira tout un tas de renseignements sur tes fichiers

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 341
    Points : 36 863
    Points
    36 863
    Par défaut
    Salut,

    Et je me demandais s'il était possible d'obtenir le maximum de ces informations par une fonction python du module os ou autre.
    Ca fait un moment que vous débutez! Ouvrir la documentation du module devrait devenir un "reflexe". En plus, c'est bien dans le module os que ça se passe, du cote des fonctions "stat"

    Je suis sous Windows et quand je fais "propriété" sur un fichier (ne décrochez pas, le rapport avec python va venir) j'ai différentes informations du genre taille, date de la dernière modification, logiciel d'ouverture par défaut, durée pour une vidéo, dimensions pour une image....
    Un fichier n'est qu'allocation de blocks disques associes a un objet avec des dates, un owner, une protection,...
    On appelle ca metadata.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    durée pour une vidéo, dimensions pour une image....
    Windows identifie le fichier suivant son type MIME et l'ouvre pour récupérer ces informations a l’intérieur - et avec autre chose que "stat", pour Python peut etre PIL?

    - W

  4. #4
    Membre averti
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Points : 413
    Points
    413
    Par défaut
    Merci pour vos réponses, je vais regarder ça. Oui, en général la documentation suffit mais des fois, le vocabulaire anglais est un peu trop dur, si je pense connaître les règles de grammaire, conjugaison et tout, le vocabulaire me fait parfois défaut. Pour ce qui est des images et vidéo, je ne pense pas en avoir besoin, mais en effet, peut-être que PIL pourrait m'apporter quelque chose, je jetterai un coup d'oeil sur les méthodes, peut-être avec un objet de type PIL.Image ou PIL.PhotoImage et .size. Il ne reste plus qu'une question qui me semble importante : le programme d'ouverture par défaut, je vais regarder.
    Merci encore.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 43
    Points : 60
    Points
    60
    Par défaut
    Bonsoir,

    Pour les images tu peux en effet passer par PIL avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Import Image
     
    im=Image.open("Ton_Fichier")
    size=im.size
    Pour les vidéos je pense que tu trouvera ton bonheur dans Pygame avec pygame.movie. Normalement la fonction get_size() te donne la résolution et get_lenth() sa durée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    movie=pygame.movie.Movie("Ton_Fichier")
    resolution=movie.get_size()
    lenth=movie.get_lenth()

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 341
    Points : 36 863
    Points
    36 863
    Par défaut
    Citation Envoyé par stalacta Voir le message
    Il ne reste plus qu'une question qui me semble importante : le programme d'ouverture par défaut, je vais regarder.
    Sous Windows l'association entre l'extension et le programme a appeler est stocke dans la Registry. Et si on n'est pas assez sportif on peut y accéder via la commande assoc lancée par un Popen.

    - W

  7. #7
    Membre averti
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Points : 413
    Points
    413
    Par défaut
    Merci pour vos informations, j'ai bidouillé une fonction pour ceux que ça intéresse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def GetExtension(filename) :
    	"""Retourne le nom du programme d'ouverture par défaut."""
    	f=os.popen('assoc .'+filename.split('.')[-1])
    	rsult=f.read()
    	f.close()
    	rsult=rsult.split('=')[-1]
    	f=os.popen('ftype '+rsult)
    	cont=f.read()
    	f.close()
    	return (cont.split('\\')[-1]).split('.')[0]

  8. #8
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 897
    Points : 7 257
    Points
    7 257
    Par défaut
    Un début un peu plus beau ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import os.path
     
    def GetExtension(filename):
        name, ext = os.path.splitext(filename)
        assoc = 'assoc {}'.format(ext)
        #etc

  9. #9
    Membre averti
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Points : 413
    Points
    413
    Par défaut
    Ah, je ne connaissais pas os.path.splitext.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Obtenir des informations sur un fichier
    Par Just dans le forum Langage
    Réponses: 1
    Dernier message: 19/02/2008, 10h42
  2. Réponses: 1
    Dernier message: 30/01/2008, 16h42
  3. Obtenir des informations sur table temporaire
    Par davidou2001 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/06/2007, 16h36
  4. Comment obtenir des informations sur le serveur?
    Par Me,Myself and I dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/01/2007, 09h36
  5. Réponses: 8
    Dernier message: 13/07/2006, 01h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo