读取字符串列表作为文件,python3

问题描述

我有一个字符串列表,我想将它传递给一个只接受一个 file 类对象的 api,而不必连接/展平列表以使用 StringIO 之类的对象.

字符串是 utf-8,不一定以换行符结尾,如果简单连接可以直接在 StringIO 中使用。

首选解决方案将在标准库(python3.8)中(鉴于数据的形状自然类似于文件(显然与 readlines() 相同),并且内存访问模式将是有效的,我有一种感觉,我只是没有正确地使用 DuckDuckGo)-但如果不存在任何“流”(无数据连接)解决方案就足够了。


[更新,基于@JonSG 的链接]

RawIOBaseTextIOBase 看起来都提供了一个 api,可以将任意大小的“块”/片段(在我的情况下:列表中的字符串)与 file-like 读取分离,该读取可以指定其自己的读取块大小,同时流式传输数据本身(在任何给定时间内存成本仅增加一些窗口[当然取决于您的源和接收器的行为])

RawIOBase.readinto 看起来特别有前途,因为它提供了直接返回给客户端读取的缓冲区,从而允许更简单的代码 - 但这似乎是以一个完整副本(到该缓冲区中)为代价的。

TextIOBase.read() 解决相同子问题的操作有其自身的成本,该子问题将 kk 远小于 N)块连接在一起。

我会调查这两个。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...