fsspec是否支持pyfilesystem类虚拟文件系统?
在fsspec中实现类似PyFilesystem的虚拟子文件系统功能
fsspec完全支持类似PyFilesystem的虚拟子文件系统特性,下面是几种常用的实现方式:
方法1:切换工作目录
通过chdir方法可以将文件系统的上下文切换到指定子目录,后续操作默认基于该目录:
from fsspec import filesystem # 初始化本地文件系统 home_fs = filesystem("local") # 切换到~/projects目录 home_fs.chdir("~/projects") # 列出当前目录下的文件(相对路径) print(home_fs.ls("."))
方法2:创建子文件系统实例
使用subfs方法可以生成一个限定在特定子目录的独立文件系统对象,和PyFilesystem的opendir行为完全一致:
from fsspec import filesystem # 打开指向~/的本地文件系统 home_fs = filesystem("local", path="~/") # 创建projects目录的子文件系统 projects_fs = home_fs.subfs("projects") # 在子系统中执行操作,无需关心父路径 print(projects_fs.ls("."))
简化写法:直接指定子目录初始化
如果不需要先操作父目录,也可以直接在初始化文件系统时指定目标子目录:
from fsspec import filesystem # 直接创建指向~/projects的文件系统 projects_fs = filesystem("local", path="~/projects")
这些方式都能实现虚拟子文件系统的隔离效果,所有针对子文件系统的操作都会被限定在目标目录范围内,不会影响其他路径的内容。
内容的提问来源于stack exchange,提问作者Juergen
相关产品推荐
相关产品推荐

