如何在 ram 中创建目录并获取它的路径? [复制]

Posted

技术标签:

【中文标题】如何在 ram 中创建目录并获取它的路径? [复制]【英文标题】:How to create directory in ram and get path to it? [duplicate] 【发布时间】:2018-07-03 22:13:30 【问题描述】:

我正在寻找一个库,它允许在 RAM 中创建一个“假”目录并获取它的路径,该路径就像磁盘上正常目录的路径一样。

我的情况是我有一个 python 脚本,它执行另一个程序(我无法修改的第三方),但它会生成文件并将它们写入指定的位置。 然后,在我的脚本中,我阅读了这些文件并对其进行了处理。 它很慢,我知道这里的瓶颈是从磁盘读取/写入文件(即使它是 SSD)。

是否可以不更改脚本的核心,而只替换用于存储中间文件的临时文件夹路径? 我不需要它们,我在处理它们后将它们删除。

完美的解决方案是这样的:

import fakeRAM
tmp_dir_path = fakeRAM.get_path()

...

os.system("program.exe " + tmp_dir_path)

【问题讨论】:

你的意思是像 RAMdisk? 你为什么不创建一个 RAMdisk 并在上面安装这个程序? 请注意,OP 需要一个可用于黑盒外部程序的 ramdisk,因此它需要在 python 之外的常规操作系统中可用。 添加了我想如何使用它的示例。 创建一个 virtualfs,例如 tmpfs(类似 UX)或 RAMdisk(windows)并让您的程序在其中运行。不确定您是否可以合理地将您的 Python 夹在另一个程序及其对您的操作系统的调用之间(即使您这样做了,它也可能对其性能不利)。 【参考方案1】:
import tempfile
import pandas as pd
import io
data=pd.read_csv("data.csv")
temp = tempfile.NamedTemporaryFile(prefix="", suffix=".csv", mode='w+b', delete=False)
data.to_csv(temp.name)
print("The created file is", temp.name)

【讨论】:

NamedTemporaryFile 仍然在文件系统上创建一个文件。使用SpooledTemporaryFile 可能会解决问题,因为文件在内存中假脱机直到达到一定大小,但这仍然不能真正直接回答 OP 的问题。 此外,如果他们设法将其保存在内存中,它不会帮助他们运行外部 .exe。

以上是关于如何在 ram 中创建目录并获取它的路径? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何获取从 iPhone 库中选择的多个图像的路径?

如何在build.gradle中创建文件并设置环境变量并获取文件内的数据?

如何在 Windows 7 (Windows 2008 R2) 中创建 RAM 驱动器?

如何在 PHP 中创建子域? [复制]

如何在终端中使用 inotify-tools 获取递归目录路径

如何在指定路径中创建目录?