Check if a directory contains a file with a given extension
You can use the else
block of the for
:
for fname in os.listdir('.'): if fname.endswith('.true'): # do stuff on the file breakelse: # do stuff if a file .true doesn't exist.
The else
attached to a for
will be run whenever the break
inside the loop is not executed. If you think a for
loop as a way to search something, then break
tells whether you have found that something. The else
is run when you didn't found what you were searching for.
Alternatively:
if not any(fname.endswith('.true') for fname in os.listdir('.')): # do stuff if a file .true doesn't exist
Moreover you could use the glob
module instead of listdir
:
import glob# stuffif not glob.glob('*.true')`: # do stuff if no file ending in .true exists
If you only want to check that any file ends with a particular extension, use any
.
import osif any(File.endswith(".true") for File in os.listdir(".")): print("true")else: print("false")
You should use the glob
module to look for exactly the files that you're interested in:
import globfileList = glob.glob("*.true")for trueFile in fileList: doSomethingWithFile(trueFile)