python:将字符串而不是file作为函数参数传递

Gra*_*ayR 4 python

我是python的初学者,我需要使用一些第三方功能,它基本上有一个输入 - 硬盘上的文件名.此函数解析文件,然后执行它.

我在我的代码中生成文件内容(它是我从列表生成的CSV文件),并且想要跳过实际的文件创建.有没有什么方法可以实现这一点并"破解"第三方函数接受我的字符串而不创建文件?

经过一些谷歌搜索后,我发现了StringIO,并在其中创建了一个文件对象,现在我坚持将这个对象传递给一个函数(同样,它不接受文件对象而是文件名).

Wha*_*ang 7

看起来您需要将数据写入文件,然后将该文件的名称传递给第三方库.您可能需要考虑使用tempfile模块以安全且简单的方式创建文件.


Amb*_*ber 5

如果它需要文件名,那么您将不得不创建一个文件。(这对于库创建者来说是糟糕的设计。)

  • 如果您有 **大量** 数据要处理,或者需要 ** 非常** 快,您可以创建一个 RAM 磁盘并完全在内存中创建您的文件。(提示:除非执行时间 > 1 小时,或者它必须是实时的,否则它*不需要*那么快。) (3认同)
  • 您找到了与我相同的链接,这意味着您一定尝试过相同的 Google 搜索。;) 但是请注意,操作系统确实为磁盘 I/O 做了一些缓存,并且使用 RAM 磁盘实际上可能会阻止这一点。如果您最终使用 RAM 磁盘,请在前后对您的代码进行基准测试,以确保它实际上使事情变得更快(而不是更慢)。 (2认同)