(python pathlib) 一篇文章搞懂Python的文件路径操作
在Python中进行文件路径操作主要涉及os
和pathlib
两个标准库。开始之前,确保在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)