(Nov-20-2021, 01:15 AM)tester_V Wrote: So,"iterdir" is not function name.Code from DeaD_EyE will
How do I call it?
Is the "root" is my directory to scan?
yield
contend so most iterate over or eg call list()
on it.Yes
root
is directory to scan.Add
os.chdir(root)
or get error if not run code is same folder as files.Here test Python 3.9 and Python 2.7 works fine in both.
# iter_d.py import datetime import os def iterdirs(root, min_days_age=0, max_days_age=30): now = datetime.datetime.now() # not newer than end_date end_date = now - datetime.timedelta(days=min_days_age) # not older than start_date start_date = now - datetime.timedelta(days=max_days_age) os.chdir(root) for path in os.listdir(root): if not os.path.isdir(path): # if path is not a directory, skip it # processing only directories continue #print(path) mtime = datetime.datetime.fromtimestamp(os.path.getmtime(path)) # chaining comparison operators: # https://www.geeksforgeeks.org/chaining-comparison-operators-python/ if start_date <= mtime <= end_date: yield path if __name__ == '__main__': root = r'G:\div_code' # Make a list lst = list(iterdirs(root)) # Iterate over content for d in iterdirs(root): print(d)
Output:# Python 3.9
G:\div_code\answer
λ python iter_d.py
answer
pack_tut
# Python 2.7
G:\div_code\answer
λ py -2.7 iter_d.py
answer
pack_tut