最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 寫入csv亂碼問(wèn)題解決方法

 更新時(shí)間:2016年10月23日 09:42:19   投稿:lqh  
這篇文章主要介紹了python 寫入csv亂碼問(wèn)題解決方法的相關(guān)資料,需要的朋友可以參考下

需求背景

最近為公司開發(fā)了一套郵件日?qǐng)?bào)程序,郵件一般就是表格,圖片,然后就是附件。附件一般都是默認(rèn)寫到txt文件里,但是PM希望郵件里的附件能直接用Excel這種軟件打開,最開始想保存為Excel,但是一想Excel的文件體積會(huì)多出好多倍,csv文件默認(rèn)也是使用Excel打開的,但是根本還是文本文件,體積小,保存也方便,于是最終決定使用csv模塊來(lái)保存文件。

Python寫csv文件

Python提供了內(nèi)置模塊讀寫csv文件,這里我只用到了寫,讀這里就不做介紹了,也不難,主要是解決亂碼問(wèn)題。

def save2csv(file_name=None, header=None, data=None):
"""
保存成CSV格式文件,方便Excel直接打開
:param file_name: 保存的文件名
:param header: 表頭,每一列的名字
:param data: 具體填充數(shù)據(jù)
: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ù)據(jù)為空或者不是數(shù)據(jù)類型')
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編碼格式的

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

相關(guān)文章

最新評(píng)論

莒南县| 长沙县| 城市| 崇阳县| 尚义县| 长阳| 工布江达县| 澄江县| 晋城| 绍兴县| 长宁区| 任丘市| 开江县| 西平县| 建昌县| 新津县| 凤阳县| 灵武市| 尚义县| 郁南县| 正定县| 桃江县| 虎林市| 兰考县| 洞头县| 建水县| 平谷区| 翁源县| 饶平县| 九台市| 方山县| 五大连池市| 鄂温| 吉安县| 五华县| 新化县| 龙南县| 定日县| 阿瓦提县| 荥阳市| 舒城县|