国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python 寫入csv亂碼問題解決方法

2020-01-04 17:22:29
字體:
來源:轉載
供稿:網友

需求背景

最近為公司開發(fā)了一套郵件日報程序,郵件一般就是表格,圖片,然后就是附件。附件一般都是默認寫到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: 具體填充數(shù)據: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文件失敗,數(shù)據為空或者不是數(shù)據類型')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編碼格式的

 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿克陶县| 崇州市| 海淀区| 来宾市| 邵阳县| 遵化市| 黑龙江省| 大名县| 渝中区| 波密县| 二连浩特市| 囊谦县| 临颍县| 冕宁县| 文化| 泗洪县| 南部县| 昌江| 乐昌市| 罗江县| 边坝县| 从化市| 岳西县| 抚远县| 兰西县| 武宁县| 招远市| 丰原市| 永平县| 齐河县| 都匀市| 那曲县| 宁阳县| 乌拉特前旗| 东安县| 水城县| 四会市| 南川市| 东兴市| 云梦县| 正蓝旗|