编写名为listDirWidthFirst(directory)的函数,查找directory目录以及子目录下所有后缀名为“.py”的文件。具体要求: (1)以广度优先算法实现遍历directory目录下所有子目录和文件; (2)统计后缀名为“.py”的文件总数; (3)输出后缀名为“.py”的文件路径信息,每个文件前要加上序号。 (4)调用listDirWidthFirst(directory)函数,测试该函数。
时间: 2024-03-22 10:37:03 浏览: 26
好的,下面是实现listDirWidthFirst(directory)函数的代码:
```python
import os
def listDirWidthFirst(directory):
# 初始化队列,加入根目录
queue = [directory]
# 初始化后缀名为“.py”的文件数量
py_file_count = 0
# 初始化序号
idx = 1
# 循环队列
while queue:
# 取出队首元素
current_dir = queue.pop(0)
# 遍历当前目录下的所有文件和文件夹
for file_name in os.listdir(current_dir):
# 构造文件的完整路径
file_path = os.path.join(current_dir, file_name)
# 如果是文件夹,将其加入队列
if os.path.isdir(file_path):
queue.append(file_path)
# 如果是文件且后缀名为“.py”,则输出文件路径信息
elif file_name.endswith(".py"):
print("{0} {1}".format(idx, file_path))
idx += 1
py_file_count += 1
# 输出后缀名为“.py”的文件数量
print("总共找到了 {0} 个后缀名为“.py”的文件".format(py_file_count))
```
调用listDirWidthFirst(directory)函数,测试该函数:
```python
listDirWidthFirst("C:\\Users\\xxx\\Desktop\\test")
```
其中,"C:\\Users\\xxx\\Desktop\\test"是要遍历的目录。你需要将其替换为你自己的目录。