Eventuali duplicati:
How to identify whether a file is normal file or directory using pythoncome verificare se un file è una directory o un file normale in python?
Come si fa a controllare se un percorso è una directory o file in python?
Eventuali duplicati:
How to identify whether a file is normal file or directory using pythoncome verificare se un file è una directory o un file normale in python?
Come si fa a controllare se un percorso è una directory o file in python?
Molte delle funzioni di directory Python sono nello os.path
module.
import os
os.path.isdir(d)
os.path.isfile("bob.txt") # Does bob.txt exist? Is it a file, or a directory?
os.path.isdir("bob")
uso os.path.isdir(path)
maggiori informazioni qui http://docs.python.org/library/os.path.html
Se lo utilizzo per determinare se qualcosa è un * file *, cosa succede se la cosa su 'path' è un collegamento simbolico? – alex
Un esempio educativo dalla documentazione stat:
import os, sys
from stat import *
def walktree(top, callback):
'''recursively descend the directory tree rooted at top,
calling the callback function for each regular file'''
for f in os.listdir(top):
pathname = os.path.join(top, f)
mode = os.stat(pathname)[ST_MODE]
if S_ISDIR(mode):
# It's a directory, recurse into it
walktree(pathname, callback)
elif S_ISREG(mode):
# It's a file, call the callback function
callback(pathname)
else:
# Unknown file type, print a message
print 'Skipping %s' % pathname
def visitfile(file):
print 'visiting', file
if __name__ == '__main__':
walktree(sys.argv[1], visitfile)
Non è la soluzione più carina, ma se hai già una struttura stat, questo ti permette di evitare di effettuare una chiamata di sistema/ricerca di un disco extra tramite os.path.isfile o amici. –
se non si sta utilizzando percorsi assoluti, come nell'esempio , controllerebbe solo l'esistenza di "bob" nella directory degli script (o dove python si trova attualmente nel filesystem) – Matthias