Python找出包含非UTF8字符的记录

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#find_non_utf8.py

import os,sys
import time

start_time = time.time()

def isUTF8(text):
    try:
        text = unicode(text, 'UTF-8', 'strict')
        return True
    except UnicodeDecodeError:
        return False

pwd = os.getcwd()
inFileName = pwd + r'/mi_201505_31192_01_01_001.dat'              #input file
outFileName = pwd + r'/mi_201505_31192_01_01_001.dat.non-utf8'    #output file

print 'input file : ',inFileName
print 'output file: ',outFileName,'\n'

inFile = open(inFileName,'r')
outFile = open(outFileName,'w')

#read 1 line at a time
while True:
    line_str = inFile.readline()
    if line_str:                             #if read the end of the input file
        if not isUTF8(line_str):
            outFile.write(line_str)
    else:
        break

inFile.close()
outFile.close()

print '\nexecution time:', time.time() - start_time , 'second(s)\n'

 

 

 

转载于:https://my.oschina.net/goopand/blog/470258

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值