【发布时间】:2020-12-05 14:53:31
【问题描述】:
如何在python中创建内存目录,就像StringIO如何创建内存文件一样?
我正在尝试使用python-gnupg 验证文件的签名。我想在内存中创建一个gnupghome 目录,以便它安全(其他非根进程无法写入它)和短暂(当我.close() 它或我的python 应用程序关闭时消失)。
该解决方案需要与操作系统无关,因此它支持 linux、Windows 和 MacOS(请不要 subprocess 调用 mktemp -d)。
是否有一种原生的、跨平台的、pythonic 的方式来创建内存中的目录?
【问题讨论】:
-
StringIO的一点是它支持的所有操作都是方法。这是有效的,因为 Python 文件对象是对象,它可以复制它们的 API。它根本不需要与文件系统交互。相比之下,Python 中没有“类目录对象”的概念。 -
如果你想要一个内存目录,你将不得不在实际的文件系统中创建它。我不认为有一个很好的跨平台方法可以做到这一点,尤其是你想要的安全属性。
-
你试过临时文件吗?您可以在 python 标准库文档中找到文档,它几乎可以满足您的所有需求:真实文件/目录、临时、受保护、跨平台
标签: python python-3.x gnupg in-memory stringio