glob.glob很慢
时间: 2023-10-31 21:12:29 浏览: 465
`glob.glob` 会扫描整个目录来匹配文件名,如果目录下文件数量较多或者文件名较长,会导致 `glob.glob` 的执行速度变慢。如果你需要快速地查找一个目录下的文件名,可以尝试使用 `os.scandir` 或者 `os.listdir`。
`os.scandir` 是 Python3.5 中引入的新特性,它返回一个迭代器,可以在迭代过程中逐个返回目录下的文件名和文件属性,相比于 `glob.glob`,它的执行速度更快。
例如:
```python
import os
for entry in os.scandir('/path/to/directory'):
if entry.is_file():
print(entry.name)
```
`os.listdir` 返回一个目录下所有文件名的列表,可以直接对列表进行操作,也比 `glob.glob` 更快。
例如:
```python
import os
for filename in os.listdir('/path/to/directory'):
if os.path.isfile(os.path.join('/path/to/directory', filename)):
print(filename)
```
需要注意的是,`os.scandir` 和 `os.listdir` 返回的文件名不包括路径,如果需要获取文件的完整路径,需要使用 `os.path.join`。
相关问题
glob.glob读取
glob.glob()读取文件路径时,会根据指定的规则匹配符来获取符合条件的文件路径名。这些匹配符包括" * "," ? "和" [] "。其中," * "匹配零个或多个字符," ? "匹配单个字符," [] "匹配指定范围内的字符。通过使用这些匹配符,glob.glob()可以获取到指定目录下符合规则的文件路径名。与glob.glob()不同的是,glob.iglob()一次只获取一个匹配路径。可以将其类比为.NET中的DataSet与DataReader的操作方式。这样,使用glob.glob()和glob.iglob()可以灵活地对文件路径进行匹配和获取。
python glob.glob
`glob.glob` 是 Python 中用于获取符合指定模式的文件路径列表的函数。它是 `glob` 模块中的一个函数。
使用方法如下:
```python
import glob
file_paths = glob.glob(pattern)
```
其中 `pattern` 为一个字符串,表示要匹配的文件路径模式。模式可以包含通配符 `*` 和 `?`,用于匹配文件名中的任意字符或单个字符。例如,`*.txt` 表示匹配所有以 `.txt` 结尾的文件。
`glob.glob` 函数返回一个列表,包含所有符合模式的文件路径。这些文件路径是根据当前工作目录进行匹配的。如果需要基于指定目录进行匹配,可以在 `pattern` 中使用相对路径或绝对路径。
示例:
```python
import glob
# 匹配当前目录下所有以 .txt 结尾的文件
file_paths = glob.glob("*.txt")
# 匹配指定目录下所有的 Python 文件
file_paths = glob.glob("/path/to/directory/*.py")
```
需要注意的是,`glob.glob` 返回的是符合模式的文件路径列表,而不是文件本身。如果需要对这些文件进行操作,可以使用其他相关的函数和模块来处理。
阅读全文