2009-09-27 21 views
3

La question est aussi simple que dans le titre, comment puis-je accéder aux propriétés de fichiers Windows comme les dates modifiées, et plus précisément les balises, avec Python? Pour un programme que je suis en train de faire, j'ai besoin d'obtenir des listes de toutes les balises sur divers fichiers dans un dossier particulier, et je ne suis pas sûr de la façon de le faire. J'ai le module win32, mais je ne vois pas ce dont j'ai besoin.Comment accéder aux propriétés de fichier sous Windows Vista avec Python?

Merci, pour les réponses rapides, cependant, la stat principale dont j'ai besoin des fichiers est l'attribut tags maintenant inclus dans Windows Vista, et malheureusement, ce n'est pas inclus dans les modules os.stat et stat. Merci cependant, car j'avais aussi besoin de ces données, mais c'était plus après coup de ma part.

Répondre

7

Vous pouvez utiliser os.stat avec stat

import os 
import stat 
import time 

def get_info(file_name): 
    time_format = "%m/%d/%Y %I:%M:%S %p" 
    file_stats = os.stat(file_name) 
    modification_time = time.strftime(time_format,time.localtime(file_stats[stat.ST_MTIME])) 
    access_time = time.strftime(time_format,time.localtime(file_stats[stat.ST_ATIME])) 
    return modification_time, access_time 

Vous pouvez obtenir beaucoup d'autres statistiques, consultez le module stat pour la liste complète. Pour extraire les informations pour tous les fichiers dans un dossier, utilisez os.walk

import os 
for root, dirs, files in os.walk(/path/to/your/folder): 
    for name in files: 
     print get_info(os.path.join(root, name)) 
1

Exemple:

import time, datetime 
fstat = os.stat(FILENAME) 
st_mtime = fstat.st_mtime # Date modified 
a,b,c,d,e,f,g,h,i = time.localtime(st_mtime) 
print datetime.datetime(a,b,c,d,e,f,g) 
3

Apparemment, vous avez besoin d'utiliser la Windows Search API recherche System.Keywords - vous pouvez accéder à l'API directement via ctypes ou indirectement (nécessitant win32 extensions) via l'assembly COM Interop de l'API. Désolé, je n'ai aucune installation Vista sur laquelle vérifier, mais j'espère que ces liens sont utiles!

0

(Vous remarquerez une version plus longue de la réponse suivante donnée sur another de vos fils.)

  1. Téléchargez et installez le pywin32 extension.
  2. Saisir the code Tim Golden a écrit pour cette tâche.
  3. Enregistrez le code de Tim en tant que module sur votre propre ordinateur.
  4. Appelez la méthode property_sets de votre nouveau module (en fournissant le chemin de fichier nécessaire). La méthode renvoie un générateur, qui est itérable. Voir l'exemple de code et la sortie suivants.
Questions connexes