StringIO for directory:如何在Python中创建内存中的目录

StringIO for directory:如何在Python中创建内存中的目录,python,python-3.x,gnupg,in-memory,stringio,Python,Python 3.x,Gnupg,In Memory,Stringio,如何在python中创建内存中的目录,如StringIO如何创建内存中的文件 我正在尝试使用pythongnupg验证文件的签名。我想在内存中创建一个gnupghome目录,使其安全(其他非根进程无法写入)且短暂(当我.close()它或我的python应用程序关闭时消失) 该解决方案需要与操作系统无关,因此它支持linux、Windows和MacOS(请不要调用mktemp-d) 是否有一种本机的、跨平台的、pythonic的方法来在内存中创建目录?您可以使用PyFilesystem的创建一个

如何在python中创建内存中的目录,如
StringIO
如何创建内存中的文件

我正在尝试使用
pythongnupg
验证文件的签名。我想在内存中创建一个
gnupghome
目录,使其安全(其他非根进程无法写入)且短暂(当我
.close()
它或我的python应用程序关闭时消失)

该解决方案需要与操作系统无关,因此它支持linux、Windows和MacOS(请不要调用
mktemp-d


是否有一种本机的、跨平台的、pythonic的方法来在内存中创建目录?

您可以使用PyFilesystem的创建一个内存中的文件系统

这就是说,
pythongnupg
的工作方式是通过在系统上输出
gpg
二进制文件。因此,
gpg
无法访问由python创建的内存中FS

此外,
pythongnupg
的实现方式意味着它的函数将文件路径作为字符串。相反,如果将文件描述符转换为字节流,那么这可能会起作用。但事实并非如此。例如:

  • gpg.gpg()
  • gpg.verify_file()
    的第二个参数是一个字符串,它是分离签名的路径

您可以使用PyFilesystem的

这就是说,
pythongnupg
的工作方式是通过在系统上输出
gpg
二进制文件。因此,
gpg
无法访问由python创建的内存中FS

此外,
pythongnupg
的实现方式意味着它的函数将文件路径作为字符串。相反,如果将文件描述符转换为字节流,那么这可能会起作用。但事实并非如此。例如:

  • gpg.gpg()
  • gpg.verify_file()
    的第二个参数是一个字符串,它是分离签名的路径

  • StringIO
    的一点是,它支持的所有操作都是方法。这是因为Python文件对象是对象,它可以复制它们的API。它根本不必与文件系统交互。相比之下,Python中没有“类似目录的对象”的概念,如果想要内存中的目录,就必须在实际的文件系统中创建它。我不认为有一个好的跨平台方法可以做到这一点,特别是在你想要的安全属性方面。你试过tempfile吗?您可以在python标准库文档中找到文档,它几乎满足您的所有需求:真实文件/目录、临时、受保护、跨平台
    StringIO
    的特点是它支持的所有操作都是方法。这是因为Python文件对象是对象,它可以复制它们的API。它根本不必与文件系统交互。相比之下,Python中没有“类似目录的对象”的概念,如果想要内存中的目录,就必须在实际的文件系统中创建它。我不认为有一个好的跨平台方法可以做到这一点,特别是在你想要的安全属性方面。你试过tempfile吗?您可以在python标准库文档中找到文档,它几乎满足您的所有需求:真实文件/目录、临时、受保护、跨平台