[python] Jak se typicky zjistuje, jestli soubor existuje?

Jan Martinek honza na dp.fce.vutbr.cz
Středa Srpen 1 16:48:53 CEST 2007


Ahoj

jestliže soubor existuje, tak za zlomek sekundy už to nemusí být pravda. 
Ve většině případů se proto existence souboru nezjišťuje, ale prostě se 
zkusí nějaká operace a když vyhodí výjimku, něco se nepovedlo.

Pro inspiraci se podívej, jak je implementovaná funkce os.path.exists()

def exists(path):
     """Test whether a path exists.  Returns False for broken symbolic 
links"""
     try:
         st = os.stat(path)
     except os.error:
         return False
     return True

Podobně například os.path.isfile():

def isfile(path):
     """Test whether a path is a regular file"""
     try:
         st = os.stat(path)
     except os.error:
         return False
     return stat.S_ISREG(st.st_mode)

Je vidět, že obě funkce volají os.stat(). Zdroják k os.access teď nějak 
nemůžu najít.

--
Jan Martinek

Ondrej Beran wrote:
> Ahoj vsichni,
> 
> nalezl jsem nekolik zpusobu, jak se da zjistit, zda soubor existuje:
> 
>     os.stat()
>     os.access()
>     os.path.exists()
>     os.path.isfile()
> 
> Co se nejcasteji pouziva? Nejjednodussi mi prijde isfile(), ale zrejme
> nejspravnejsi bude access().
> 
> Nebo se mylim?
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python


Další informace o konferenci Python