添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

如何在Python中把文件写入内存文件路径并从内存文件路径读取?

5 人关注

一个现有的Python包需要一个文件路径作为一个方法的输入参数,以便能够从文件路径解析文件。我想在云环境中使用这个非常特殊的Python包,在那里我不能把文件写到硬盘上。我不能直接控制现有Python包中的代码,而且切换到另一个环境也不容易,在那里我可以把文件写到硬盘上。所以我在寻找一个解决方案,能够把文件写到内存文件路径上,让分析器直接从这个内存文件路径上读取。这在Python中可能吗?或者有什么其他的解决方案吗?

通过使用harddrive工作的Python代码示例,应该改变它,使之不使用harddrive。

temp_filepath = "./temp.txt"
with open(temp_filepath, "wb") as file:
  file.write("some binary data")
model = Model()
model.parse(temp_filepath)

使用内存文件系统存储文件的Python代码示例,但它不允许解析器从内存文件系统中读取文件。

from fs import open_fs
temp_filepath = "./temp.txt"
with open_fs('osfs://~/') as home_fs:
  home_fs.writetext(temp_filepath, "some binary data")
model = Model()
model.parse(temp_filepath)
    
5 个评论
这个包能不能也接受一个打开的文件对象?在这种情况下,你可以使用 io.BytesIO
ti7
你使用的是什么操作系统?
我在Linux操作系统上使用一个Azure函数
这个包不能接受一个打开的文件对象,它需要文件路径。它甚至会验证文件路径是否有正确的扩展名
找到了微软的一个解决方案,能够在临时目录上存储数据。 learn.microsoft.com/en-us/answers/questions/42218/...
python
linux
azure-functions
Davma
Davma
发布于 2020-12-14
1 个回答
ti7
ti7
发布于 2020-12-14
已采纳
0 人赞同

你可能在寻找 StringIO or BytesIO from io

import io
with io.BytesIO() as tmp:
    tmp.write(content)