Python3处理中文字符报错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3处理中文字符报错相关的知识,希望对你有一定的参考价值。

对于处理中文字符,我百度了下看大家都在用import codecs 的命令,可我复制过来的代码会报错 这一行 f.write(codecs.BOM_UTF8) ,有哪位大神能帮忙看看嘛?

报错信息
Traceback (most recent call last):
File "C:\Users\18214\Desktop\tool summary\Python\CSV.py", line 36, in <module>
f.write(codecs.BOM_UTF8)
TypeError: write() argument must be str, not bytes
>>>

源代码:
import codecs

with open('ExcelUtf8.csv', 'w') as f:
t = u'中国人'
f.write(codecs.BOM_UTF8)
f.write('%s,1,3\n' % t.encode('utf-8'))

参考技术A write()中的参数必须是字符串 codecs.BOM_UTF8是字节 参考技术B python3 如何设置文件编码 直接open(file,'r', encoding="utf-8"),即可。 参考技术C 请问解决了吗?

time.strftime:格式化字符串中含中文报错处理

import time
print(time.strftime("%Y年%m月%d日 %H时%M分%S秒",time.localtime()))

报错:

UnicodeEncodeError: locale codec cant encode character u5e74 in position 2: Illegal byte sequence

打印当前时间

import time
print(time.localtime())

运行结果:

time.struct_time(tm_year=2019, tm_mon=1, tm_mday=30, tm_hour=11, tm_min=22, tm_sec=48, tm_wday=2, tm_yday=30, tm_isdst=0)

格式化输出

import time
print(time.strftime("%Y{}%m{}%d{} %H{}%M{}%S{}",time.localtime()).format(,,,,,))

运行结果:

2019年01月30日 11时22分48秒

为什么不能直接写成字符串,没有理解。

 

以上是关于Python3处理中文字符报错的主要内容,如果未能解决你的问题,请参考以下文章

python3.6使用chardet模块总是报错ValueError: Expected a bytes object, not a unicode object

python3.5版本Flask运行报错原因

time.strftime:格式化字符串中含中文报错处理

python3.3版本,导入带有中文字符的.py文件 提示 (unicode error) 'utf-8' codec can't decode

Python 3.3 C 字符串处理(wchar_t 与 char)

Python3_01Str字符串处理