Python 如何将内存文件系统装入目录
我有一个Python内存文件系统,以以下方式创建:Python 如何将内存文件系统装入目录,python,python-3.x,mount,pyfilesystem,Python,Python 3.x,Mount,Pyfilesystem,我有一个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') 我想把这个文件系统挂载到我的OS文件系统中的一个目录上(例如,/home/user/mem_dir)。我可以创建一个引用OS文件系统的对象: os_fs = fs.open_
import fs
mem_fs = fs.open_fs('mem://')
mem_fs.makedirs('/dir1')
with mem_fs.open('/dir1/file1', 'w') as file1:
file1.write('test')
我想把这个文件系统挂载到我的OS文件系统中的一个目录上(例如,/home/user/mem_dir)。我可以创建一个引用OS文件系统的对象:
os_fs = fs.open_fs('/home/user/mem_dir')
但是我不知道如何将mem_fs安装到os_fs上。我尝试使用MountFS类,但它只创建了一个虚拟文件系统。我需要以其他外部应用程序(例如nautilus)能够看到的方式创建一个装载点,并将文件复制到那里。如有任何反馈,我们将不胜感激。我也有同样的要求,而且我是这样做的
from fs.tempfs import TempFS
tmp = TempFS(identifier='_toto', temp_dir='tmp/ramdisk/')
它确实创建了一个目录,任意名称的后缀为_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% /run
tmpfs 3,9G 195M 3,7G 5% /dev/shm
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 3,9G 0 3,9G 0% /sys/fs/cgroup
tmpfs 785M 36K 785M 1% /run/user/1000
当您的代码结束或调用
>>> tmp.close()
tmp/ramdisk❯❯❯ lstmp/ramdisk❯❯❯
干杯为什么不直接挂载内核提供的
ramfs
卷?@Klaus你是说使用mount命令吗?我希望能够在Python内部完成所有工作,因为这只是我全部代码的一小部分。您可以研究以下内容: