使用Python在Windows上编写虚拟文件系统的最简单方法

12

我想用Python在Windows中编写一个虚拟文件系统。

也就是说,我想要一个Python程序的界面实际上是一个“资源管理器窗口”。你可以创建和操作类似文件的对象,但它们并不像普通文件一样被创建在硬盘上,而是由我的程序管理,比如说存储在远程位置、加密、压缩、版本控制等等,总之只要我能用Python做到的都行。

最简单的方法是什么?


4
首先,制作一个完整的想要实现的清单。然后选择列表中的第一项,如果对该项存在疑问,可以在这里寻求解决方案。当前问题过于宽泛。 - OscarRyz
1
我同意奥斯卡的观点。看起来你并没有在构建一个文件系统,而是一个类似于资源管理器窗口的界面,但可以读写其他现有的文件系统,例如FTP站点(远程),或压缩或加密卷(zip文件或加密库的功能)。 - Kibbee
6
我写道我正在建立(或想要建立)一个虚拟文件系统。 - flybywire
1
你有没有�功��它?�有 GitHub 仓库�?😊 - Cucu
5个回答

10

虽然可能还没完全成熟(不幸的是我没有第一手经验),pywinfuse 看起来正是你所需要的。


4

看一下Dokan,这是一个用户模式的Windows文件系统。有Ruby、.NET(还有第三方提供的Java)绑定可用,我认为编写Python绑定也不会很困难。


4

需要使用Windows本地协议吗?至少有一种协议可以在Windows资源管理器中浏览,并由免费的Python库提供服务:FTP。将您的程序放在pyftpdlib后面,就完成了。


2

您可能会对PyFilesystem感兴趣;

Python的文件系统抽象层

PyFilesystem是一个文件系统抽象层。就像Python的类似文件对象提供了一种通用的访问文件的方式一样,PyFilesystem提供了一种访问整个文件系统的通用方式。您可以编写与本地文件一起使用的平台无关代码,并且也适用于任何支持的文件系统(zip、ftp、S3等)。

主页上的描述没有宣传的是,您可以将这个抽象再次公开为文件系统,包括SFTP、FTP(虽然目前不可用,但可能可修复),以及dokan和fuse等。


我认为OP是在寻找相反的方式,即将他的数据公开为文件系统。 - Eugene Mayevski 'Callback
@EugeneMayevski'EldoSCorp 这就是 PyFilesystem 的 expose 子模块所做的事情 - 我的回答可能需要更多的详细说明,稍后我会进行扩展。 - Tobias Kienzler
2
@EugeneMayevski'EldoSCorp 我添加了一些更多的文本 - 我没有意识到主页上没有提到暴露函数,因为我是通过明确搜索带有Python和Dokan的内容来找到PyFilesystem的... - Tobias Kienzler

2
如果你想编写虚拟文件系统(我可能误解了你的意思)-我建议查看容器文件格式。VHD格式已得到很好的文档记录,还有HDI和(嵌入式)OSQ。基本上你需要做两件事:一是选择一个文件/容器格式,之后就可以简单地编写API来操作该容器。如果你希望通过互联网进行操作,选择一个传输协议,然后只需编写一个服务(模仿文件系统驱动程序)监听某个端口并使用你的API操作该容器即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接