Python: 读取目录下的所有内容
2025-02-17
目录读取
基本实现
import os
from pathlib import Path
def list_files(directory):
"""列出目录下所有文件"""
path = Path(directory)
for item in path.iterdir():
if item.is_file():
print(f"文件: {item}")
elif item.is_dir():
print(f"目录: {item}")
list_files(item) # 递归遍历子目录
def read_file(filename):
"""读取文件内容"""
with open(filename, 'r', encoding='utf-8') as f:
content = f.read()
print(f"文件内容:\n{content}")
def write_file(filename, content):
"""写入文件内容"""
with open(filename, 'w', encoding='utf-8') as f:
f.write(content)
print(f"内容已写入: {filename}")
if __name__ == '__main__':
# 示例用法
directory = "example_dir"
list_files(directory)使用 pathlib
from pathlib import Path
# 列出所有文件
path = Path('example_dir')
for file in path.glob('**/*'): # ** 表示递归搜索
print(file)
# 按扩展名过滤
for file in path.glob('**/*.txt'):
print(f"文本文件: {file}")使用 os.walk
import os
for root, dirs, files in os.walk('example_dir'):
print(f"当前目录: {root}")
print(f"子目录: {dirs}")
print(f"文件: {files}")最佳实践
路径处理
- 使用 pathlib 处理路径
- 处理路径分隔符
- 考虑跨平台兼容性
异常处理
- 检查文件/目录是否存在
- 处理权限问题
- 处理文件编码
注意:
- 注意文件编码
- 处理大目录时的性能
- 考虑权限问题