前言

python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode、decode。

当list、tuple、dict里面有中文时,打印出来的是Unicode编码,这个是无解的。

对中文编码纠结的建议尽快换python3吧,python2且用且珍惜!

csv中文乱码

1.open打开csv文件,用writer写入带有中文的数据时

writer写入单行

writers写入多行

# coding:utf-8

import csv

f = open("xieru.csv", 'wb')

writer = csv.writer(f)

# 需要写入的信息

data = ["客户名称", "行业类型", "客户联系人", "职位", "联系方式", "邮箱","地址"]

writer.writerow(data) # 写入单行

# writer.writerows(datas) # 写入多行

f.close()

2.打开csv文件,发现写入的中文乱码了

编码与解码

1.中文乱码问题一直是python2挥之不去的痛,这里先弄清楚乱码原因:

python2本身内部代码的编码有str和unicode两种编码

然而文件写入到windows系统时候,windows上的是gb2312编码

所以就导致了乱码问题

2.先把python里面的中文字符串decode成utf-8,再encode为gbk编码

data.decode('utf-8').encode('gbk')

3.如果是读取csv文件的话,就反过来:

data.decode('gbk').encode('utf-8')

解决方案

1.方案一:对字符串转换编码(这个太麻烦了,不推荐)

# coding:utf-8

import csv

f = open("xieru1.csv", 'wb')

writer = csv.writer(f)

# 需要写入的信息

data = ["客户名称", "行业类型", "客户联系人", "职位", "联系方式", "邮箱","地址"]

a = []

for i in data:

a.append(i.decode("utf-8").encode("gbk"))

writer.writerow(a) # 写入单行

# writer.writerows(datas) # 写入多行

f.close()

2.方法二:用codecs提供的open方法来指定打开的文件的语言编码,它会在读取的时候自动转换为内部unicode (推荐)

# coding:utf-8

import csv, codecs

import sys

reload(sys)

sys.setdefaultencoding('utf8')

f = codecs.open("xx.csv",'wb',"gbk")

writer = csv.writer(f)

writer.writerow(["客户名称", "行业类型", "客户联系人", "职位", "联系方式", "邮箱","地址"])

# 多组数据存放list列表里面

datas = [

["客户名称", "行业类型", "客户联系人", "职位", "联系方式", "邮箱","地址"],

["客户名称", "行业类型", "客户联系人", "职位", "联系方式", "邮箱","地址"],

["客户名称", "行业类型", "客户联系人", "职位", "联系方式", "邮箱","地址"],

]

writer.writerows(datas)

f.close()

从悠悠处搬过来的。

Mysql 导入CSV文件,中文内容乱码问题

项目中用到含有中文字段的数据CSV文件,导入Mysql数据中发现中文内容乱码. 分析原因:因为数据库字符编码问题引起. [1]创建utf-8字符集数据库 CREATE DATABASE db_name ...

PHP生成UTF-8编码的CSV文件用Excel打开乱码的解决办法

什么是BOM? 在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是FEFF.而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中.UCS规范建 ...

python在处理CSV文件时,字符串和列表写入的区别

概述 Python在处理CSV文件时,如果writerow的对象是字符串时,写入到CSV文件时将会出现一个字符占一个单元格的情况: 但是将字符串转换为列表类 ...

python中操作csv文件

python中操作csv文件 读取csv improt csv f = csv.reader(open("文件路径","r")) for i in f: pri ...

Python源码文件中带有中文时,输出乱码

Python源码文件中带有中文时,文件头应加注释: #!/usr/bin/env python # -*- coding: utf-8 -*- 第一行注释是为了告诉Linux/OS X系统,这是一个P ...

Java ZIP压缩和解压缩文件(解决中文文件名乱码问题)

Java ZIP压缩和解压缩文件(解决中文文件名乱码问题) 学习了:http://www.tuicool.com/articles/V7BBvy 引用原文: JDK中自带的ZipOutputStrea ...

jquery ajax 返回值 中文时乱码或变成问号解决方法

转载自jquery的 ajax返回值为中文时乱码解决方法 用jquery的ajax,遇到个问题,服务器端从数据库取到的数据没有出现中文乱码问题(日志打出来是没有乱码的),但是异步传到客户的时候却出现了 ...

用c#读取文件内容中文是乱码的解决方法:

用c#读取文件内容中文是乱码的解决方法: //方法1: StreamReader din = new StreamReader(@"C:\1.txt", System.Text.E ...

Jmeter读取CSV文件,请求参数乱码

Jmeter读取CSV文件,请求参数乱码 1.修改本地配置文件,jmeter.properties,修改以下配置项 sampleresult.default.encoding=UTF-8 重启Jmet ...

随机推荐

NHibernate系列文章二十四:NHibernate查询之Linq查询(附程序下载)

摘要 NHibernate从3.0开始支持Linq查询.写Linq to NHibernate查询就跟写.net linq代码一样,非常灵活,可以很容易实现复杂的查询.这篇文章使用Linq to NH ...

phpcms v9 源码解析(4)content模块下的index.php文件的init()方法解析

在了解index.php中的init函数的时候,让我们先看看最开始的几行代码 1-5  第二行, defined('IN_PHPCMS') or exit('Nopermission resource ...

运维人员:走好你的IT运维路

转自 http://os.51cto.com/art/201303/387120.htm   现阶段,大多数运维人员只是处于被动低效率手工救火的状态,企业对其重视程度不高,导致部分运维人员对自己的 ...

python基础课程_学习笔记20:标准库:有些收藏夹——os

标准库:有些收藏夹 os os模块为您提供访问多个操作系统服务特征. os和它的子模块os.path还包含一些用于检查.构造.删除文件夹和文件的函数,以及一些处理路径的函数. os模块中一些重要函数和 ...

取URL得值

有这样一个URL:http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e,请写一段JS程序提取URL中的各个GET参数(参 ...

Keyboard Test Utility v1.0.1.0 电脑键盘测试软件绿色版

软件名称: 电脑键盘测试软件绿色版软件语言: 简体中文授权方式: 免费软件运行环境: Win8 / Win7 / Vista / WinXP软件大小: 917KB图片预览: 软件简介:Keyboard ...

夏令营讲课内容整理 Day 7.

Day7是夏令营的最后一天,这一天主要讲了骗分技巧和往年经典的一些NOIP试题以及比赛策略. 这天有个小插曲,上午的day7T3是一道和树有关的题,我是想破脑袋也想不出来,正解写不出来就写暴力吧,暴力 ...

使用JavaScript验证用户输入的是否为正整数

在项目开发中,需要使用JavaScript验证用户输入的是否为正整数. 方法一: var type="^[0-9]*[1-9][0-9]*$"; var r=new RegExp( ...

logstash收集IIS日志

匹配字段 %{TIMESTAMP_ISO8601:log_timestamp} (%{WORD:s-sitename}|-) (%{IPORHOST:s-ip}|-) (%{WORD:cs-metho ...

Selenium2+python自动化53-unittest批量执行(discover)

前言 我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到unittet里面的discover方法来加载用例了. 加载用例后,用unittest里面的Text ...

python存成csv文件时中文乱码_Python在向CSV文件写中文时乱码的处理办法相关推荐

  1. python爬虫中文乱码_Python爬虫处理抓取数据中文乱码问题

    原博文 2013-12-17 17:15 − 乱码原因:因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件.但是windows的本地默认编码是cp936,也就是gbk编码,所以在 ...

  2. python 文件分割 按大小_python处理分隔大文件

    4个.sql格式的文件,2G大小,直接插入mysql数据中,文件太大了,导入不进去. 太大的文件用python处理也很麻烦,处理不了,只能先分隔成小文件处理. 文件中数据格式:其中values里面的数 ...

  3. python文件操作和模块_Python(五)--模块与文件操作

    Python(五)–模块与文件操作 模块和包 模块 模块是包含Python定义和语句的文件,把一组相关函数或代码组织到一个文件中,一个文件即一个模块.模块的文件名 = 模块名+后缀.py 模块之间代码 ...

  4. python将元祖写入txt文档_python元祖和文件用法举例

    1.元组的几种创建方法 T = () #创建一个空的元组 T = (1,) #创建一个空的字符串 T = (0,'Ni',1.2,3) #创建一个含有四个元素的元组 T = 0,'Ni',1.2,3 ...

  5. python的文件怎么删除干净_python 实现彻底删除文件夹和文件夹下的文件

    python 中有很多内置库可以帮忙用来删除文件夹和文件,当面对要删除多个非空文件夹,并且目录层次大于3层以上时,仅使用一种内置方法是无法达到彻底删除文件夹和文件的效果的,比较low的方式是多次调用直 ...

  6. python只保留数据的某几列_python怎么选取csv某几列

    python怎么选取csv某几列,python有csv库可以专门处理csv文件,如果我们把csv文件看做列表的形式,并且存储为列表的形式数据,这样我们就可以用切分的方法来获取列的信息,我们要取哪一行都 ...

  7. python打开文件夹的权限_python修改linux中文件(文件夹)的权限属性操作

    今天生成的对流云团路径图片放在linux下,文件的权限都是rw,没有x,后续的别人的程序调用不了,这里附上对三个属性的简单解释,有不够的欢迎大家补充 Linux的权限不是很细致,只有RWX三种 r(R ...

  8. python exe文件运行依赖环境_python将py代码文件转换为EXE脱离环境运行

    如何将python将py代码文件编译成为EXE文件,让其能够脱离python环境独立运行? 方法是有的,下面大家请看如何来操作. 我的环境是VS2017,同时安装了ironpython 一.安装pyi ...

  9. pythonread读取怎么是乱码_python中如何读写文件不乱码

    python中对文件的读和写操作是经常要用到的,下面说一下文件读和写的方法. 读文件 打开文件(文件需要存在)#打开文件 f = open("data.txt","r&q ...

最新文章

  1. 揭开Windows XP 系统安全模式的密秘
  2. windows系统中的常用网络命令
  3. python3实现汉字转拼音
  4. 综合-某假期欢乐赛 (Apri, 2018)
  5. 1.2 什么是神经网络-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授
  6. vue怎么合并两个视频_【软件分享】视频分割合并软件哪款好用呢?怎么剪切合并视频?...
  7. warning C4828问题的处理
  8. 有没有一百万的电脑配置?
  9. PostgreSQL一些简单问题以及解决办法
  10. Redis 中的事件驱动模型
  11. steam怎么设公用计算机,steam怎么设置家庭共享 steam家庭共享设置方法
  12. 值得收藏的网盘搜索引擎网盘搜索工具
  13. java环境安装说明
  14. java删除表格_Java 删除Word表格/表格内容
  15. c++链表——银行账户管理系统
  16. vob格式的视频怎么无损转换成mp4格式
  17. 计算当前屏幕大小js
  18. 133.Python修炼之路【138-前端-JQuery-Json】2018.08.02
  19. 如何更好地理解中间件和洋葱模型
  20. 什么是编码?什么是解码?

热门文章

  1. lightroom_如何在Lightroom中创建新目录
  2. Mysql的锁机制解读
  3. 浅析C++中的打开文件、保存文件(OPENFILENAME)
  4. 阿拉伯数字变成中文写法
  5. python 内置函数 setattr()
  6. 【华为OD机试 2023最新 】货币单位换算(C++ 100%)
  7. Sintavia为5.5万平方英尺先进制造工厂揭幕
  8. Java文件是如何编译成Dex文件的?如何执行Dex文件?
  9. 日常开发技巧(一):延迟删除文件
  10. 华为 IS-IS防环、泄露