網(wǎng)站如果不備案如何檢測網(wǎng)站是否安全
目錄
處理大量文件節(jié)省內(nèi)存
匹配多個文件擴展名
遍歷多種格式文件
遍歷某一個文件:
查找當前目錄和子目錄
6.?排除特定文件
7.?大小寫不敏感匹配
8.?獲取絕對路徑
9.?處理特殊字符
處理大量文件節(jié)省內(nèi)存
技巧:用 iglob 替代 glob,逐項生成路徑,節(jié)省內(nèi)存。
for file in glob.iglob("**/*.csv", recursive=True):process(file) ?# 逐項處理大文件列表
匹配多個文件擴展名
技巧:使用?{}
?匹配多個模式,或用列表推導(dǎo)式合并結(jié)果。
# 方法1:使用 {} 匹配多個擴展名
files = glob.glob("*.{jpg,png}", recursive=True)# 方法2:合并多個 glob 結(jié)果
files = [f for ext in ["*.jpg", "*.png"] for f in glob.glob(ext)]
遍歷多種格式文件
import glob
import osimport time
if __name__ == '__main__':base_dir='F:\project\lx_code\dance\pic_mp4\images_for_recon\img_1x1'imgs=glob.glob(os.path.join(base_dir,'*.png'))+glob.glob(os.path.join(base_dir,'*.jpg'))+glob.glob(os.path.join(base_dir,'*.jpeg'))
遍歷某一個文件:
from glob import globfor video_path in glob("/shared_disk/users/lbg/project/inpaint/see3d/mp4s/person_big_0108.mp4"):
查找當前目錄和子目錄
# 查找當前目錄及其子目錄下所有的 .py 文件
py_files_recursive = glob.glob('**/*.py', recursive=True)
for file in py_files_recursive:print(file)
6.?排除特定文件
技巧:用列表推導(dǎo)式過濾不需要的文件。
all_files = glob.glob("*.txt") filtered = [f for f in all_files if "temp" not in f]
7.?大小寫不敏感匹配
技巧:自定義函數(shù)將模式和路徑轉(zhuǎn)為小寫(適用于非大小寫敏感系統(tǒng))。
def case_insensitive_glob(pattern):return glob.glob(pattern, recursive=recursive)files = case_insensitive_glob("*.JPG") # 匹配 .jpg 和 .JPG
8.?獲取絕對路徑
技巧:結(jié)合?os.path.abspath
?或直接匹配絕對路徑。
import os# 將相對路徑轉(zhuǎn)為絕對路徑 abs_files = [os.path.abspath(f) for f in glob.glob("*.py")]# 直接匹配絕對路徑 abs_files = glob.glob("/home/user/docs/*.pdf")
9.?處理特殊字符
技巧:用?glob.escape
?轉(zhuǎn)義路徑中的特殊字符(如?*
,??
)。
escaped_path = glob.escape("file[1].txt") files = glob.glob(f"{escaped_path}") # 精確匹配 file[1].txt