如何使用path变量替代直接复制路径,通过glob模块匹配文件?
用path变量结合glob实现文件匹配的正确写法
你当前代码里的path*'.jpg'写法有误:字符串不能用*来拼接,会触发语法错误,且就算语法合法,也会生成格式错误的路径(缺少路径分隔符)。以下是正确实现方式:
基础实现(匹配当前目录下所有.jpg文件)
首先要导入os模块(你当前代码漏了这一步),然后通过路径拼接生成合法的匹配模式:
import glob import os path = os.getcwd() # 用os.path.join自动适配系统路径分隔符 jpg_files = glob.glob(os.path.join(path, "*.jpg"))
也可以用f-string直接拼接(Python 3.6及以上版本支持):
import glob import os path = os.getcwd() jpg_files = glob.glob(f"{path}/*.jpg")
递归匹配(当前目录及所有子目录下的.jpg文件)
如果需要遍历子目录,可开启recursive=True参数:
import glob import os path = os.getcwd() jpg_files = glob.glob(os.path.join(path, "**", "*.jpg"), recursive=True)
关键注意点
- 必须导入
os模块才能使用os.getcwd() - 路径拼接优先用
os.path.join,它会自动适配Windows、Linux等不同系统的路径分隔符,避免路径格式错误 glob.glob的参数是完整的匹配模式字符串,不能用字符串乘法拼接路径和匹配规则
内容的提问来源于stack exchange,提问作者itaykivsi זיו
相关产品推荐
相关产品推荐

