Check if a directory contains a file with a given extension Check if a directory contains a file with a given extension python python

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)