问题标签 [cstringio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
345 浏览

python - Python 使用带有 foreach 循环的 cStringIO

我想遍历行 cStringIO 对象,但它似乎不适用于 foreach 循环。更准确地说,行为就像集合是空的。我究竟做错了什么?

例子:

谢谢你。

0 投票
1 回答
3615 浏览

python - StringIO 中的就地替换

如何在 a 中用另一个字符串替换一个字符串StringIO?- 我听说如果它们的长度相同,这是可能的。

试图:

PS:目前正在研究 C 中的解决方案,但更愿意让它工作。

0 投票
1 回答
3319 浏览

python-2.7 - 获取 StringIO 对象的大小(以字节为单位)

是否可以获取StringIO对象的大小(以字节为单位)?还是每次我想获得它的大小时都应该把它写到磁盘上?
我搜索了很多但没有成功。那里sizeof ()但我认为这不是我想要的。

我正在遍历文件名列表

0 投票
0 回答
246 浏览

python - ValueError 使用 plt.savefig() 和 cStringIO 缓冲区

我正在尝试使用matplotlib和制作切线的交互式图cv2。以前,我只是将文件保存到我的磁盘,然后将图像打开为图像.png列表。我决定省略使用磁盘并使用cStringIO缓冲区。我暂时省略了图像显示循环,因为我很确定当我通过它时它会起作用。我有两个函数,pic()生成绘图,然后调用convt()将绘图转换为缓冲区,并使用 提取原始字符串buff.getValue,然后返回字符串。问题似乎与np.frombuffer(). 如果我只是打印pic(),我可以将缓冲区视为字符串,但np.frombuffer(pic())会导致ValueEerror

这是两个函数和注释掉的循环来填充列表。数学函数定义被省略了,因为我已经对它们进行了测试并且它们按预期工作。请注意,此版本已最小化以导致相同的错误:

0 投票
1 回答
439 浏览

python - 如何使用 cStringIO 创建具有空值的内存 TSV 文件?

我知道我可以制作一个简单的内存 CSV 文件,如下所示:

但是我如何调整它以包含null/None值?我问是因为我正在tsv_string使用真实数据动态生成我的。一些整数字段为空,我不能用空字符串替换它们,因为 Postgres 无法正确解释。

为了提供更多背景信息,我这样做是为了可以使用psycopg2'scopy_from函数,由于上述原因,该函数当前给了我这个错误:

所以问题是,我如何在我的内存 TSV 文件中放置空值。是否有更合适的文件扩展名可供使用?

0 投票
1 回答
1344 浏览

python-2.7 - Matplotlib savefig 到 cStreamIO 然后将数据加载到另一个 Matplotlib plot/fig Python 2.7

尝试使用 matplotlib 写入 iostream,然后在另一个 matplotlib 图中显示该数据(从以下开始:将 Matplotlib savefig 写入 html)。为了提高效率,我想避免将图像写入磁盘。

这是代码:

返回的错误是:IOError: [Errno 22] invalid mode ('rb') or filename: 'iVBORw...followed by a long string with the data from the image'

我查看了 image.py 文件,它似乎正在寻找文件名。

谢谢参观。

0 投票
1 回答
2865 浏览

amazon-s3 - 通过 boto3 将内存对象写入 S3

我正在尝试将文件直接写入 S3,而不创建然后上传的本地文件。

我正在使用 cStringIO 在内存中生成一个文件,但我无法找出将它上传到 boto3 的正确方法。

以上是我之前在本地文件中使用的标准 boto3 方法,如果没有本地文件,它就无法工作,我收到以下错误:coercing to Unicode: need string or buffer, cStringIO.StringO found .

因为内存中的文件(我相信)已经被认为是打开的,我尝试将其更改为下面的代码,但它仍然不起作用,没有错误,脚本只是挂在方法的最后一行。

只是为了获取更多信息,我试图写的值看起来像这样

(cStringIO.StringO object at 0x045DC540)

有谁知道我在这里做错了什么?

0 投票
2 回答
3256 浏览

python - 在内存流中编码或 TextIOBase 如何工作?

我目前正在阅读 io 模块的文档:https ://docs.python.org/3.5/library/io.html?highlight=stringio#io.TextIOBase

也许是因为我对 Python 不够了解,但在大多数情况下,我只是不了解他们的文档。

我需要将数据保存addresses_list到 csv 文件中,并通过 https 将其提供给用户。所以所有这些都必须发生在内存中。这是它的代码,目前它工作正常。

现在的问题是我需要将 csv 文件的内容编码为cp1252而不是utf-8。传统上,我只会编写f = open("output.csv", "w", encoding="cp1252")然后将所有数据转储到其中。但是对于内存中的流,它不会那样工作。两者,io.StringIO()并且io.BytesIO()不带参数encoding=

这是我对文档有深刻理解的地方:

文本流 API 在 TextIOBase 的文档中有详细描述。

TextIOBase的文档是这样说的:

编码=

用于将流的字节解码为字符串以及将字符串编码为字节的编码名称。

io.StringIO(encoding="cp1252")只是抛出:TypeError: 'encoding' is an invalid keyword argument for this function

那么如何将 TextIOBase 的编码参数与 StringIO 一起使用呢?或者这通常是如何工作的?我感到很困惑。

0 投票
2 回答
978 浏览

python - 从 StringIO 读取而不重置位置

我有一个包含以下内容的测试代码:

这打印为:

如您所见,这具有不同的打印效果。但是,当我这样做时:

当我运行它时,我得到以下输出:

在这种情况下,它输出相同的值(搜索器不前进)。

我需要使 cStringIO (或类似的解决方案)以与文件相同的方式读取字符串。我的意思是每次阅读都没有重置位置。

0 投票
1 回答
250 浏览

python - 无法迭代 cStringIO

在脚本中,我正在向文件写入行,但有些行可能是重复的。所以我创建了一个cStringIO类似文件的临时对象,我称之为“中间文件”。我首先将这些行写入中间文件,删除重复项,然后写入真实文件。

因此,我编写了一个简单的 for 循环来遍历中间文件中的每一行并删除所有重复项。

我的问题是for循环永远不会被执行。我可以通过在调试器中放置断点来验证这一点;该行代码只是被跳过并且函数退出。我什至从这个线程中阅读了这个答案并插入了代码cStringIO.OutputType.getvalue(f_temp),但这并没有解决我的问题。

我不知道为什么我不能读取和遍历我的类文件对象。