python文件读取处理方法小计

读取文件方法:

  • read() 读取整个文件
  • readline () 读取下一行
  • readlines() 读取整个文件到一个迭代器以供我们遍历(读取到一个list中,以供使用,大文件不适用太耗费内存)

文件迭代可用方法:

1.for … in …

with open("file") as fh:
    for line in fh:
        print(line.strip())

2.while fh.readline():

with open("file") as fh:
  while True:
    line=f.readline()
    if line:
        print (line)
    else:
        break

Ps:readline()每次调用返回一行,遍历文件每一行需要多次调用,如方法2。不可写成for line in fh.readline(),否则为在一行迭代

中文编码处理:

  • decode解码
  • encode编码

在需要转换的时候,使用显式转换。从字节解码成文本,用 var.decode(encoding),从文本编码成字节,用 var.encode(encoding)。依从str→(decode)→unicode,unciode→(encode)→str。

从外部读取数据时,默认它是字节,然后 decode 成需要的文本;同样的,当需要向外部发送文本时,encode 成字节再发送。

Ps:encode可以任意指定,decode需知道文本格式,如:python文件第一行的#coding=utf8,html中的等

中文乱码UL:http://www.cnblogs.com/testlife007/p/5163507.html

去除window下文本文档BOM头:

在window的环境下,保存的文本文档会加上三个字符0xEF 0xBB 0xBF的头部,这三个字符可能会影响对文本的读取,形成乱码,在这里记录下如何避免。如直接保存为ASCII编码的txt文件是不包含BOM头部的,文件另存为UFT-8的格式则出现BOM头乱码情况,方法如下:

#coding=utf-8
import codecs
data=open("xxx.txt").read()
if data[:3]==codecs.BOM_UTF8:
    data = data[3:]
print data
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值