可能大家都遇到过,python在输出的csv文件中如果有utf-8格式的中文,那么在使用excel打开该csv文件时,excel将不能够有效识别出文件中的中文数据,严重时甚至不能够识别出分隔符。那么,要怎样操作才能够让excel识别出utf-8格式的中文呢?方法其实很简单,见以下代码:
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')) 运行代码,使用excel打开,截图如下:
如果我们屏蔽掉其中的一句代码
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')) 再次运行代码,使用excel打开,截图如下:
其中具体的原理,大家可以去百度:BOM了
当Python生成的CSV文件包含UTF-8编码的中文时,Excel可能无法正确显示。解决方法是在输出文件时添加BOM头。通过在代码中添加相应步骤,可以确保Excel能识别并正确显示中文数据。
1565

被折叠的 条评论
为什么被折叠?



