Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将内存文件系统装入目录_Python_Python 3.x_Mount_Pyfilesystem - Fatal编程技术网

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_

我有一个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_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❯❯❯ ls
tmpa1_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❯❯❯ ls
tmp/ramdisk❯❯❯


干杯

为什么不直接挂载内核提供的
ramfs
卷?@Klaus你是说使用mount命令吗?我希望能够在Python内部完成所有工作,因为这只是我全部代码的一小部分。您可以研究以下内容: