首页 > 代码库 > python中使用文件的读取和简单正则使用(一)

python中使用文件的读取和简单正则使用(一)

<style>p { margin-bottom: 0.25cm; line-height: 120% }</style>


今天想写个程序合并文件的,以前一直觉得python的编码解码好烦,只要处理文件合并之类的都是用C# 写,但是最近用的是linux,也没有vs,就只能乖乖的用python 写了,早上看了下,也没有我想的负责,只能说以前太那啥了。。。。好了,闲话少说,下面先简单介绍下文件读取操作吧。

首先说明的是我用的python2.7,python读取文件内容主要有下面几种常用方法:先来个测试,方面大家可以清晰了解每种方法具体是啥样子的。

文件的内容是下面这样的

技术分享

一种:fopen.read(size)  

<style>p { margin-bottom: 0.25cm; line-height: 120% }</style>

 

参数size指的是读取数量,如果省略的化,表示的读取整个文件内容

  

1 # coding=utf-8
2 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)

 

技术分享

 

<style>p { margin-bottom: 0.25cm; line-height: 120% }</style>

读文件差不多就这样了,下面我们来说下写文件,这就涉及到编码问题了,python中的写文件为fout.write(str),str为一个字符串。

对于中文字符的写入大多会因为编码问题提示出错。

py文件默认是ASCII编码 ,所以在显示中文的时候,会t提示SyntaxError: Non-ASCII character之类的错误,首先在代码前端加入:

# coding=utf-8

unicode是一个内置函数,第二个参数指示源字符串的编码格式。

decode是任何字符串具有的方法,将字符串转换成unicode格式,参数指示源字符串的编码格式。

encode也是任何字符串具有的方法,将字符串转换成参数指定的格式。

u‘汉字构造出来的是unicode类型,不用的话构造出来是str类型

unicodestr,要用encode方法

strunicode,要用decode

所以在写入中文的时候,代码如下:

 

# coding=utf-8
fopen=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)#这是换行

 

好了,读写文件差不多这些也够用了,下面说个简单的正则,这个放在下篇了

 

<style>p { margin-bottom: 0.25cm; line-height: 120% }</style>

python中使用文件的读取和简单正则使用(一)