对开发者来说,最恼人的问题之一莫过于读写文件的时候,由于编码千差万别,出现乱码问题。好难快速解决啊。。。

下面说一下解决问题的思路

1. python中习惯首先声明编码类型#!/usr/bin/python

# -*- coding:  -*-

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

PS:不一定所有文件都是 utf-8 编码的,这里要注意。

2. 出现编码问题时,首先查看下该文件的初始编码方式,linux下命令为 :file -i filename,

eg:当前文件的编码为 “ISO-8859-1”,随后就将Python中的”utf-8“做了相应修改。

在读取文件时,需要先解码:str = str.decode("ISO-8859-1")  ## 这样返回的就是unicode的str

在写入文件时,再用同样的方式编码(这里暂且不提文件转码):str = str.encode("ISO-8859-1")

例如,解析一段“ISO-8859-1”编码的json,代码如下(更多学习内容,请点击云海天教程网)import json

Jstr = json.loads(str, encoding="ISO-8859-1")

########

## handle sth to ”data“

########

print data.encode("ISO-8859-1")

这样print 或 写入的文件就不存在乱码啦。

3:utf-8格式写入文件

如果以上 json 文件是 utf-8 编码,写入后转为了 unicode,现在要写入utf-8,可以用如下方式:import codecs

name='xxx.json'

f=codecs.open(name,'r',encoding='utf8')

of=codecs.open(name+'.txt','w', encoding='utf8')

for line in f:

dictdata=json.loads(line)

out=json.dumps(dictdata,indent=4, ensure_ascii=False)

of.write(out+'

')

of.close()

python文件是乱码怎么办_python写入文件乱码怎么办相关推荐

  1. python不是内部文件别太任性_Python对文件的操作

    Python的文件操作 什么是IO 在计算机中 I/O 是指 Input/Output,即 Stream (流)的输入和输出,输入和输出是相对于内存来说的.程序运行时数据都驻留在在内存当中,由 CPU ...

  2. python 如何把 utf - 8 字符串写入文件中_心若止水_百度空间

    python 如何把 utf - 8 字符串写入文件中_心若止水_百度空间 python 如何把 utf - 8 字符串写入文件中_心若止水_百度空间 python 如何把 utf - 8 字符串写入 ...

  3. python中文件的write语句_Python之文件读写

    程序中的数据都存储在内存中,当程序执行完毕后,内存中的数据将丢失,而文件可以用来进行数据的长期保存. 一.文件的打开与关闭 1. open 函数 Python通过解释器内置的open()函数打开一个文 ...

  4. 属于python文件的操作有_Python的文件操作

    1.初始文件操作 1.使用python读写文件使用open()函数获取文件句柄,就可以操作文件了,根据打开方式不同能执行的操作也不同. 打开方式有: r.w.a.r+.w+.a+.rb.wb.ab.r ...

  5. python文件操作与异常处理_Python学习——文件操作和异常处理

    在上一篇文章中,我们介绍了 Python 的函数和模块,现在我们介绍 Python 中的异常和文件. 查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/9963 ...

  6. python文件读取与输出_python基本文件操作(文件输入和输出)

    文件输入输出中常用的文件对象方法: open: 返回一个新的文件对象,调用该对象的上的方法可对文件进行任何操作 readline: 读取一行数据包括结尾的换行符在内 write: 将数据写入文件中 c ...

  7. python读文件和写文件-python开发--从文件中读取数据和写入文件

    #! /usr/bin/env python -*- coding:utf-8 -*- """ @Author:gcan @Email:1528667112@qq.com ...

  8. python对文件的操作模式_python对文件的操作

    一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法. 1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 2.返回指定目录下的所有文件 ...

  9. python文件操作的方法_python中文件操作的基本方法

    在python中对一个文件进行操作,分为三大步:打开,操作,关闭 首先创建一个文件hello,里面内容为hello world 一.打开一个文件 #open('文件名或文件路径','操作模式',文件里 ...

  10. python中requests库入门及写入文件

    1.python中requests库入门 import requests r = requests.get("https://www.baidu.com") print(r.sta ...

最新文章

  1. 【干货】图神经网络的十大学习资源分享
  2. easypoi实现Excel导入
  3. c# winForm DotNetBar控件之SuperGridControl
  4. 第二章 HTML5存储 JSON格式
  5. 套接口编程理论基础:正常启动
  6. GB28181协议介绍
  7. 中国4G网络走近大融合时代
  8. 电商运营数据分析常用分析指标--概述及流量指标
  9. java程序作弄别人_我的世界:作弄基友,戏耍熊孩子?家中常备红石陷阱,谁来谁遭殃!...
  10. 全民推荐时代已经到来!SaaS联盟推广计划如何开展?
  11. python做flash帧动画_[练习]利用CSS steps 实现逐帧动画
  12. matlab数组 xp,windowsxp系统将matlab数据导入excel的方法
  13. linux系统装fluent没有界面,linux系统下安装fluent
  14. java双端队列工作密取,同步器皿、并发容器、阻塞队列、双端队列与工作密取...
  15. qt找不到打印机_Qt之打印机总结
  16. 计算机网络(3.10)数据链路层- 集线器的星形拓扑和以太网的信道利用率
  17. 最新(U盘木马)Auto病毒专杀
  18. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java宜居家居用品网jte0e
  19. 商家编号_doc_010简洁的简历模板word格式
  20. Android单元测试学习总结

热门文章

  1. LPC1788入门手记
  2. java获取图片流_JAVA IO流读取图片的问题
  3. MySQL数据库实验
  4. 单位换算:秒(s)/毫秒(ms)/微秒(us)/纳秒(ns)/皮秒(ps)之间密尔(mil)/毫米(mil)/英尺(inch)之间
  5. Java获取压缩包内文件数_java获取递归获取嵌套压缩包(zip和rar)中的所有文件
  6. 一个大牛写的有关游戏的
  7. 自制hdmi线一头改vga图_VGA连接线接口定义及引线焊接教程,VGA线不够长时可用网线代替?...
  8. 阿里云服务器搭建Ghost博客教程
  9. 大地测量学基础(复习)第一部分
  10. [经典力学]牛顿自然哲学的数学原理论文解读