python中使用文件的读取编码问题和简单正则使用(一)
来源:互联网 发布:保险网络增员话术 编辑:程序博客网 时间:2024/04/30 18:47
今天想写个程序合并文件的,以前一直觉得python的编码解码好烦,只要处理文件合并之类的都是用C#写,但是最近用的是linux,也没有vs,就只能乖乖的用python 写了,早上看了下,也没有我想的负责,只能说以前太那啥了。。。。好了,闲话少说,下面先简单介绍下文件读取操作吧。
首先说明的是我用的python2.7,python读取文件内容主要有下面几种常用方法:先来个测试,方面大家可以清晰了解每种方法具体是啥样子的。
文件的内容是下面这样的
一种:fopen.read(size)
p { margin-bottom: 0.25cm; line-height: 120% }
参数size指的是读取数量,如果省略的化,表示的读取整个文件内容
1 # coding=utf-82 fopen=open('train2.txt','r')3 text=fopen.read()4 print(text)#默认读取全部内容
显示整个文本内容,如下:
二种:fopen.readline()读取文件一行的内容
三种:fopen.readlines()读取所有的行到list里面,[line1,line2,...lineN] 这是一种常用的方法,避免将所有文件加载到内存,提高运行效率
fopen=open('train2.txt','r')lines=[]lines=fopen.readlines()for line in lines: print(line)
p { margin-bottom: 0.25cm; line-height: 120% }
读文件差不多就这样了,下面我们来说下写文件,这就涉及到编码问题了,python中的写文件为fout.write(str),str为一个字符串。
对于中文字符的写入大多会因为编码问题提示出错。
py文件默认是ASCII编码 ,所以在显示中文的时候,会t提示SyntaxError: Non-ASCII character之类的错误,首先在代码前端加入:
# coding=utf-8
unicode是一个内置函数,第二个参数指示源字符串的编码格式。
decode是任何字符串具有的方法,将字符串转换成unicode格式,参数指示源字符串的编码格式。
encode也是任何字符串具有的方法,将字符串转换成参数指定的格式。
用 u'汉字' 构造出来的是unicode类型,不用的话构造出来是str类型
从unicode转str,要用encode方法
从str转unicode,要用decode
所以在写入中文的时候,代码如下:
# coding=utf-8fopen=open('train2.txt','r')fout=open('2.txt','w')lines=[]lines=fopen.readlines()for line in lines: #以gbk编码读取(当然是读取gbk编码格式的文字了)并忽略错误的编码,转换成utf-8编码输出 line.decode('gbk','ignore').encode('utf-8') fout.write(line) fout.write('\n')#这是换行
设置默认编码
设置默认编码,我觉得对于一些文件的读写还是挺有用处的,形式如下面这样
import syssys.getdefaultencoding()reload(sys)sys.setdefaultencoding('utf-8')
好了,读写文件差不多这些也够用了,下面说个简单的正则,这个放在下篇了
p { margin-bottom: 0.25cm; line-height: 120% }
- python中使用文件的读取编码问题和简单正则使用(一)
- python中使用文件的读取编码问题和简单正则使用(二)
- python读取不同文件的编码问题
- Python读取Excel文件遇到的编码问题(pycharm)
- 如何创建和读取excel文件-poi的简单使用(一)
- 读取和写入文件的编码问题
- 在Python中使用正则表达式同时匹配邮箱和电话并进行简单的分类
- python读取文件写入数据库中编码问题
- 简单的使用NPOI读取和生成Excel文件
- Python中使用中文导致的编码问题
- C#文件写入和读取简单使用
- Python对unicode文件的读写和使用正则表达式
- 使用Python读取和写入CSV文件
- 使用Python读取和写入CSV文件
- python/正则匹配使用中遇到的问题
- Python中使用中文及编码问题
- python中写入csv,excel显示、pandas读取csv文件的编码问题
- 文件编码和RandomAccessFile文件流的使用--IO学习笔记(一)
- python中类的基本使用
- 【bzoj1002】[FJOI2007]轮状病毒
- 如何关掉Java里面的window边框
- keras中merge用法
- keras中Convolution1D的使用
- python中使用文件的读取编码问题和简单正则使用(一)
- python中使用文件的读取编码问题和简单正则使用(二)
- Linux内核分析——扒开系统调用的三层皮(下)
- ASP.net连接mysql数据库(使用MySql.Data.dll)
- 顺序表应用2:多余元素删除之建表算法
- 使用phantomjs新的
- 53. Maximum Subarray(unsolved)
- 群论&polya定理笔记
- 内存泄漏和内存溢出