gpt4 book ai didi

python - 使用 io.StringIO 模拟文件时的 Unicode 问题

转载 作者:太空狗 更新时间:2023-10-29 20:22:08 25 4
gpt4 key购买 nike

我正在使用 io.StringIO 对象在类的单元测试中模拟文件。问题是此类似乎默认所有字符串都是 unicode,但内置 str 不返回 unicode 字符串:

>>> buffer = io.StringIO()
>>> buffer.write(str((1, 2)))
TypeError: can't write str to text stream

但是

>>> buffer.write(str((1, 2)) + u"")
6

有效。我认为这是因为与 unicode 字符串的连接也使结果成为 unicode。这个问题有更优雅的解决方案吗?

最佳答案

io 包提供 python3.x 兼容性。在 python 3 中,字符串默认是 unicode。

您的代码在标准 StringIO 包中运行良好,

>>> from StringIO import StringIO
>>> StringIO().write(str((1,2)))
>>>

如果您想以 Python 3 的方式进行操作,请使用 unicode() 而不是 str()。你必须在这里明确。

>>> io.StringIO().write(unicode((1,2)))
6

关于python - 使用 io.StringIO 模拟文件时的 Unicode 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3749502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com