在我的python代码中,我在执行此行时遇到此错误.
fo.write(text.replace("'","").encode("utf8"));
Run Code Online (Sandbox Code Playgroud)
错误:
TypeError: must be str, not bytes
Run Code Online (Sandbox Code Playgroud)
它与python 2.7一起工作正常,但是3,它给出了错误.
在Python 3中,以文本模式打开的文件对象要求您编写Unicode文本.
您将文本编码为UTF-8字节,但文件对象负责进行编码.不要对文本进行编码.
通过使用io.open()函数而不是内置函数,您可以在Python 2中获得相同的行为open().ioPython 2中的模块是Python 3中使用的新I/O基础结构的后端.
如果您需要编写多语言代码(Python代码同时适用于Python 2和Python 3),只需从io以下位置导入:
import io
with io.open(filename, 'w', encoding='utf8') as fo:
fo.write(text.replace("'",""))
Run Code Online (Sandbox Code Playgroud)
Python 3内置open()函数与函数完全相同io.open().
| 归档时间: |
|
| 查看次数: |
5235 次 |
| 最近记录: |