无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

(python pathlib) 一篇文章搞懂Python的文件路径操作 Python 文件路径操作使用 pathlib 和 os 库 全网首发(图文详解1)

前沿技术 Micheal 4个月前 (06-11) 57次浏览 已收录 扫描二维码

(python pathlib) 一篇文章搞懂Python的文件路径操作

在Python中进行文件路径操作主要涉及ospathlib两个标准库。开始之前,确保在Python环境中已经安装了这些库(通常他们是预装的)。

下面将以pathlib为主进行说明,因为它提供了更为现代和面向对象的API。

引入库

from pathlib import Path

创建新目录

# 创建一个Path对象
p = Path('/Users/username/myfolder')

# 不存在则创建目录
p.mkdir(parents=True, exist_ok=True)

注释:

  • parents=True:如果父目录不存在,则连同父目录一起创建。
  • exist_ok=True:如果目录已存在,不抛出错误。

列出目录内容

for child in p.iterdir():  
    print(child)

检查文件或目录是否存在

print(p.exists())  # 返回True或False

读写文件

# 写入文件
content = 'Hello World'
with open(p / 'example.txt', 'w') as f:
    f.write(content)

# 读取文件
with open(p / 'example.txt', 'r') as f:
    print(f.read())

注释:

  • 使用/操作符来连接路径,pathlib会正确处理不同操作系统中的路径分隔符。

复制文件

import shutil

# 创建源文件和目标路径对象
source = p / 'example.txt'
destination = p / 'copied_example.txt'

# 复制文件
shutil.copy(str(source), str(destination))

注释:

  • shutil模块用于执行文件操作。

移动文件

new_destination = p / 'subfolder/moved_example.txt'

# 移动文件
new_destination.parent.mkdir(parents=True, exist_ok=True)  # 确保目的文件夹存在
shutil.move(str(source), str(new_destination))

删除文件或目录

# 删除文件
if new_destination.exists():
    new_destination.unlink()

# 删除目录
if p.exists():
    p.rmdir()  # 只能删除空目录

注释:

  • unlink方法用于删除文件。
  • rmdir方法用于删除空目录,如果需要删除非空目录,请使用shutil.rmtree()

获取文件属性

# 获取文件大小
print(new_destination.stat().st_size)

# 获取最后修改时间
from datetime import datetime
mtime = datetime.fromtimestamp(new_destination.stat().st_mtime)
print(mtime)

路径遍历和匹配

# 遍历特定模式的文件
for file in p.glob('**/*.txt'):
    print(file)  # 打印所有txt文件路径

# 找到第一个匹配的文件
print(next(p.glob('*.txt'), None))

注释:

  • **代表匹配所有目录,*.txt代表匹配所有后缀为.txt的文件。

这只是python文件和目录操作的基本用法。在实际应用中,你可能需要结合异常处理等机制来使你的文件操作更稳健和安全。
(java18下载) JDK18 (Java SE Development Kit 18) for Mac v18.0.2 x64 官方苹果电脑版 Oracle JDK18 安装指南 全网首发(图文详解1)
(android navigation) Android中的导航navigation的使用详细步骤 使用 Navigation 组件简化 Android 应用导航逻辑 全网首发(图文详解1)

喜欢 (0)
[]
分享 (0)
关于作者:
流水不争先,争的是滔滔不绝