Python基础教程(四十九)操作文件和目录:指尖舞者,Python文件与目录操作全解析

一、核心武器库:os与shutil模块

import os, shutil

# 路径操作与元数据
file_path = os.path.abspath("data.txt")  # 绝对路径
print(f"大小: {os.path.getsize(file_path)} bytes") 

# 高阶文件操作
shutil.copy2("source.log", "backup/")  # 保留元数据的复制
shutil.make_archive("data_zip", 'zip', "dataset/")  # 目录压缩

二、现代路径管理:pathlib革命

from pathlib import Path

# 面向对象路径操作
config = Path("/etc/app") / "config.yaml"  # 路径拼接
if config.exists():
    content = config.read_text(encoding='utf-8')
    
# 模式匹配与递归遍历
py_files = list(Path("src").rglob("*.py"))  # 递归搜索

三、关键技巧与避坑指南

  1. 安全删除目录
shutil.rmtree("temp_data", ignore_errors=True)  # 错误静默
  1. 高效大文件读取
with open("large.log", "rb") as f:
    for chunk in iter(lambda: f.read(4096), b""):
        process(chunk)
  1. 跨平台路径处理
path = Path("docs") / "release_notes.md"
str_path = path.as_posix()  # 转换为POSIX风格

四、高级应用场景

  • 内存文件操作
from io import StringIO
mem_file = StringIO()
mem_file.write("Pythonic in-memory data")
  • 实时日志监控
with open("service.log", "r") as log:
    while True:
        line = log.readline()
        if line: alert_analysis(line)

五、安全防护要点

风险类型

防护措施

路径遍历攻击

使用os.path.abspath标准化路径

竞争条件

文件锁(fcntl/msvcrt

编码错误

明确指定encoding='utf-8'

误删数据

删除前二次确认+备份机制


结语
Python的文件系统操控能力远超基础读写。通过osshutilpathlib三剑客的组合,配合安全编码实践,开发者可构建健壮的文件处理流程。在云存储时代,这些技能仍是数据处理管道的基石——最新统计显示,87%的ETL工具仍依赖本地文件暂存中间数据。掌握文件操作,即掌控了数据流动的命脉。

扩展思考:如何结合watchdog库实现实时文件监控?异步文件操作有何性能优势?欢迎探讨更多高阶应用!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值