2010-11-04 4 views
-3

J'ai une hashtable en python de chaînes. Donc, chaque entrée est une chaîne. Les chaînes peuvent éventuellement commencer par "/" ce qui implique qu'ils sont des noms de fichiers. Quel serait un moyen rapide de prendre une telle hashtable, et pour chaque chaîne qui commence par un "/" vérifier si le fichier existe? Si le fichier n'existe pas, lecomment vérifier un hachage en python?

+0

« Si le fichier n'existe pas, le » ... vous pouvez modifier votre question et complétez-le. – ThiefMaster

+3

-1: n'a pas copié et collé l'ensemble des devoirs. –

+0

Je dirais lui donner un peu de temps pour terminer son poste. – Skurmedel

Répondre

2

Pour trouver si la chaîne commence par une barre oblique:

str.startswith('/') 

ou

str[0] == '/' 

Pour trouver si un fichier est valide:

import os.path 
os.path.exists(str) 

Vous pouvez parcourir votre hashtable en utilisant une instruction for. Mettre tous ensemble (en supposant les chemins potentiels sont les valeurs dans la table de hachage [appelé dict en python]):

import os.path 

for val in table.values(): 
    if val.startswith('/') and not os.path.exists(val): 
     print "BAD FILE!!! ", val 
+0

... et si vous allez manipuler les fichiers, n'oubliez pas TOCTOU: http://en.wikipedia.org/wiki/Time-of-check-to-time-of-use :) – Skurmedel

Questions connexes