According to your comment you already figured out how to use listdir. I myself always use the following function. It can search on multiple extensions at once like ['.tif', '.jpg'].
import os
import re
def get_all_file_paths(dir_path, extensions=[]):
found_file_paths = []
dir_entries = os.listdir(dir_path)
for dir_entry in dir_entries:
dir_entry_path = os.path.join(dir_path, dir_entry)
if os.path.isfile(dir_entry_path):
if extensions:
# accept files with required extensions --------------------------
extension = os.path.splitext(dir_entry)[1]
if extension.lower() in extensions:
found_file_paths.append(dir_entry_path)
else:
# accept all files -----------------------
found_file_paths.append(dir_entry_path)
return found_file_paths
file_paths = get_all_file_paths(r'C:\dir', extensions=['.tif'])
Suppose it returns a list like this
file_paths = [
r'C:\dir\T000001XY01C2.tif',
r'C:\dir\T000001XY02C2.tif',
r'C:\dir\T000001XY03C2.tif',
r'C:\dir\T000001XY04C2.tif',
]
Then I would use regular expressions to extract the numbers you want.
for file in file_paths:
# get the XY**C*. part
re_xy_c = r'XY\d+C\d+\.'
result = re.findall(re_xy_c, os.path.split(file)[1])
if result:
xy_c_string = result[0]
# now get the numbers from the xy_c_string
re_numbers = r'\d+'
result = re.findall(re_numbers, xy_c_string)
first_nr = int(result[0])
second_nr = int(result[1])
print(first_nr, second_nr)
# now make your choice
if first_nr % 2 == 0:
# even nr
print('do even')
else:
# odd nr
print('skip odd')
print('------------')
Result
1 2
skip odd
------------
2 2
do even
------------
3 2
skip odd
------------
4 2
do even
------------
Use can test your regular expressions here regex101.com