import os #1-遍历:os.walk(指定的绝对路径或相对路径):把文件夹里的文件夹里的文件都找出来 for dirpath,dirnames,files in os.walk('./'): print(F"发现文件夹:{dirpath}") print(files) #2-搜索: (1)利用字符串匹配方法 #.starswith() .endswith() print('meanwhile'.startswith('mean')) print('meanwhile'.endswith('ile')) # (2) glob模块 glob.glob() recursive=True 递归找到文件夹下的所有符合条件文件 import glob print(glob.glob('*.py'))# *任意的字符 print(glob.glob('test_?.py'))# ?单个字符 print(glob.glob('test_[2,5].py')) # []列表内的匹配 [0-9] [1,4,5] ![1,3]不在列表内的 print(glob.glob('**/*.pth', recursive=True)) # (3)fnmatch模块 可以用来匹配文件名 import fnmatch print(fnmatch.fnmatch('test.py','te*.py')) #3-查询文件信息; os.scandir()返回的文件都可以查询信息 # files.stat()文件的信息 st_size st_mtime # os.stat(指定文件路径)单独查询制定文件信息 # time.ctime() # datetime.datetime.fromtimestamp() import time #unix时间戳 time.ctime() import datetime #时间戳 that_time = datetime.datetime.fromtimestamp(1567764428) print(that_time) print(that_time.year,that_time.day) print(that_time.hour) print(that_time.minute) print(that_time.second) for files in os.scandir(): files_time = files.stat().st_mtime print(files.name,datetime.datetime.fromtimestamp(files_time)) print(os.stat('test_1.py')) #作业: 找到文件夹内体积大于100,以‘.py’结尾的文件 # 筛选文件日期早于2022年 输出文件路径 for ins in os.scandir(): in_size = ins.stat().st_size in_time = datetime.datetime.fromtimestamp(ins.stat().st_mtime) in_time_year = in_time.year if in_size > 100 and ins.name.endswith('.py') and in_time_year<2022 : print(ins.path)