如何将内存文件系统挂载到目录

我在 Python 中有一个内存文件系统,以下列方式创建:


import fs

mem_fs = fs.open_fs('mem://')

mem_fs.makedirs('/dir1')

with mem_fs.open('/dir1/file1', 'w') as file1:

    file1.write('test')

我想将此文件系统挂载到我的操作系统文件系统中的一个目录(例如,/home/user/mem_dir)。我可以创建一个引用 OS 文件系统的对象:


os_fs = fs.open_fs('/home/user/mem_dir')

但是我不知道如何将mem_fs安装到os_fs上。我尝试使用MountFS类,但它只创建一个虚拟文件系统。我需要以其他外部应用程序(例如,nautilus)能够看到它并将文件复制到/从那里复制文件的方式创建一个安装点。对于任何反馈,我们都表示感谢。


慕森王
浏览 93回答 1
1回答

开满天机

我有同样的要求,因为我是这样管理的from fs.tempfs import TempFStmp = TempFS(identifier='_toto', temp_dir='tmp/ramdisk/')它确实 mount 创建了一个目录,具有以 _toto 为后缀的任意名称tmp/ramdisk lstmpa1_4azgi_toto它完全可以作为主机中的标准文件系统使用,就像在您的 python 代码中一样tmp/ramdisk/tmpa1_4azgi_toto ❯❯❯ mkdir test                                                                    tmp/ramdisk/tmpa1_4azgi_toto ❯❯❯ ls                                                                            test >>> tmp.listdir('/')['test']它看起来很神奇,因为它根本没有出现在挂载主机的文件系统中 ❯❯❯ df -ah | grep -E '(ramdisk|tmp)'                                              tmpfs                       785M    1,7M  783M   1% /runtmpfs                       3,9G    195M  3,7G   5% /dev/shmtmpfs                       5,0M    4,0K  5,0M   1% /run/locktmpfs                       3,9G       0  3,9G   0% /sys/fs/cgrouptmpfs                       785M     36K  785M   1% /run/user/1000当您的代码结束或您致电时,它会完全消失>>> tmp.close()tmp/ramdisk ❯❯❯ lstmp/ramdisk ❯❯❯干杯
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python