老师 glob里面的正则表达式的符号都有什么意思?

来源:2-8 查找指定的文件

杜_efoOS8

2025-04-04 23:48:16

老师一开始的控制器输入

result = glob (target +"/*")
result

result = glob (target +"/*"+"/*")
result

这里的+号我知道是重复1次和多次,但是为什么要在控制器里面用+号

这里的/符号为知道是获取的文件夹里面的具体内容,也意味着开启了下一级

这里的*符号为知道是重复0次和多次,也意味着全部


后面的代码运行

我看老师的递归函数当中,用的是    ,“*”

我知道在glob当中,用逗号+星号,代表着是此路径下的全部,我在程序当中用 ,"/*"替代过

但是在控制器里面,为什么不能用 逗号,感觉好迷糊,有详细的解释吗?老师

写回答

1回答

好帮手慕小猿

2025-04-07

同学,你好!+ 是字符串连接操作符,用于将 target 路径和 /* 连接起来。

"/*" 是一个通配符模式,* 代表任意字符序列(包括空字符序列)。target+"/*"是将target路径下的所有文件或目录匹配出来,如target路径是“C:\\Users\\xxx\\Desktop\\源码\\filetest" ,是将filetest下的所有文件或目录都匹配出来

https://img1.sycdn.imooc.com/climg/abbceb6709f36ab102600285.jpg

https://img1.sycdn.imooc.com/climg/aeba206709f369ff05790519.jpg

2、Ipython也是可以使用glob的,但是与py文件的写法不同,需要import glob ,在glob.glob()中写个路径,如下图

https://img1.sycdn.imooc.com/climg/cf25086709f3694105890776.jpg

IPython 中报错的原因:

(1)、严格的命名空间检查:IPython 对命名空间的检查较为严格,它不会自动进行模糊的命名空间解析或对象遮蔽。当执行import glob时,它明确导入的是标准库中的glob模块,而这个模块没有os.path属性,所以会抛出错误。

(2)、不存在自定义模块或对象遮蔽:IPython 通常在一个相对独立的环境中运行,不会像在某些自定义的 Python 项目中那样,可能存在与标准库同名的自定义模块或对象。因此,import glob导入的就是标准的glob模块,不存在遮蔽导致的错误解析。

祝学习愉快~

0

Python全能工程师

8阶段5大热门领域,从入门到实战,带你从零基础晋级全能,全面提升就业力

1604 学习 · 968 问题

查看课程