I need to check the current directory and see if a file with an extension exists. My setup will (usually) only have one file with this extension. I need to check if that fil
If you only want to check that any file ends with a particular extension, use any
.
import os
if 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 glob
fileList = glob.glob("*.true")
for trueFile in fileList:
doSomethingWithFile(trueFile)
You can use the else
block of the for
:
for fname in os.listdir('.'):
if fname.endswith('.true'):
# do stuff on the file
break
else:
# 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
# stuff
if not glob.glob('*.true')`:
# do stuff if no file ending in .true exists