python 写入csv乱码问题解决方法
程序员文章站
2022-04-13 20:02:11
...
需求背景
最近为公司开发了一套邮件日报程序,邮件一般就是表格,图片,然后就是附件。附件一般都是默认写到txt文件里,但是PM希望邮件里的附件能直接用Excel这种软件打开,最开始想保存为Excel,但是一想Excel的文件体积会多出好多倍,csv文件默认也是使用Excel打开的,但是根本还是文本文件,体积小,保存也方便,于是最终决定使用csv模块来保存文件。
Python写csv文件
Python提供了内置模块读写csv文件,这里我只用到了写,读这里就不做介绍了,也不难,主要是解决乱码问题。
def save2csv(file_name=None, header=None, data=None): """ 保存成CSV格式文件,方便Excel直接打开 :param file_name: 保存的文件名 :param header: 表头,每一列的名字 :param data: 具体填充数据 :return: """ if file_name is None or isinstance(file_name, basestring) is False: raise Exception('保存CSV文件名不能为空,并且必须为字符串类型') if file_name.endswith('.csv') is False: file_name += '.csv' file_obj = open(file_name, 'wb') file_obj.write(codecs.BOM_UTF8) # 防止乱码 writer = csv.writer(file_obj) if data is None or isinstance(data, (tuple, list)) is False: raise Exception('保存CSV文件失败,数据为空或者不是数据类型') if header is not None and isinstance(header, (tuple, list)) is True: writer.writerow(header) for row in data: writer.writerow(row)
注意:有三句话就是为了防止乱码的
file_obj = open(file_name, 'wb') file_obj.write(codecs.BOM_UTF8) # 防止乱码 writer = csv.writer(file_obj)
在文件头部写入codecs.BOM_UTF8就能防止乱码了,文件都是utf-8编码格式的
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
相关文章
相关视频
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
上一篇: 基于jquery的文章中所有图片width大小批量设置方法_jquery
下一篇: string - 如何在php中截取字符串“xxx_xxxx_IP地址_xxxxxxxx_xxxxxx”中的IP地址呢?
推荐阅读
-
在python3中pyqt5和mayavi不兼容问题的解决方法
-
如何处理Python3.4 使用pymssql 乱码问题
-
HTML5在IE10、火狐下中文乱码问题的解决方法
-
解决python中画图时x,y轴名称出现中文乱码的问题
-
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
-
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
-
python操作mysql中文显示乱码的解决方法
-
Python中MYSQLdb出现乱码的解决方法
-
Python连接mssql数据库编码问题解决方法
-
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论