python用os库实现遍历目录里的文件
时间: 2024-10-11 21:10:14 浏览: 36
在Python中,你可以使用`os`库及其下的`os.walk()`函数来遍历目录树中的所有文件和子目录。这个函数会生成一个迭代器,每次迭代返回一个三元组,包含当前目录路径、当前目录下的子目录名列表以及子目录下的文件名列表。以下是基本的使用示例:
```python
import os
def list_files_in_directory(directory):
for root, dirs, files in os.walk(directory):
for file in files:
yield os.path.join(root, file)
# 使用方法
directory_to_walk = '/path/to/directory'
for file_path in list_files_in_directory(directory_to_walk):
print(file_path)
```
在这个例子中,`list_files_in_directory`函数接收一个目录路径作为输入,并通过`os.walk`生成的迭代器逐个访问每个文件。`os.path.join(root, file)`用于构建完整的文件路径。
相关问题
python使用os模块遍历文件夹里所有文件
在Python中,`os` 模块提供了一种方便的方式来操作文件系统,包括遍历文件夹。要使用 `os` 遍历文件夹里的所有文件,你可以使用递归函数结合 `os.listdir()` 和 `os.path.join()` 函数。以下是一个简单的示例:
```python
import os
def list_files_recursively(directory):
for filename in os.listdir(directory):
# 获取完整的文件路径
file_path = os.path.join(directory, filename)
# 如果是文件而不是目录
if os.path.isfile(file_path):
print(f"发现文件: {file_path}")
# 如果是目录,则递归遍历
elif os.path.isdir(file_path):
list_files_recursively(file_path)
# 使用函数并指定要遍历的根目录
root_dir = '/path/to/your/directory'
list_files_recursively(root_dir)
```
这个脚本会打印出指定目录下以及其所有子目录中的所有文件路径。
python 实现循环遍历目录 删除文件
以下是 Python 实现循环遍历目录并删除文件的示例代码:
```python
import os
def delete_files(dir_path):
for root, dirs, files in os.walk(dir_path):
for file_name in files:
file_path = os.path.join(root, file_name)
os.remove(file_path)
print(f"Deleted {file_path}")
# 示例:删除当前目录下所有 .txt 文件
delete_files(".")
```
代码解释:
1. `os.walk()` 方法可以递归遍历目录树,返回每个子目录的路径、子目录列表和文件列表。
2. 在循环中,使用 `os.path.join()` 方法拼接出文件的完整路径。
3. 使用 `os.remove()` 方法删除文件。
4. 可以根据需要添加异常处理和日志输出等功能。
注意:删除文件操作是不可逆的,请谨慎使用。建议在测试环境中先进行测试,确保不会误删重要文件。
阅读全文