python 获取文件编码格式_python 读写文件包含多种编码格式的解决方式

今天写一个脚本文件,需要将多个文件中的内容汇总到一个txt文件中,由于多个文件有三种不同的编码方式,读写出现错误,先将解决方法记录如下:

# -*- coding: utf-8 -*-

import wave

import pylab as pl

import numpy as np

import pandas as pd

import os

import time

import datetime

import arrow

import chardet

import sys

reload(sys)

sys.setdefaultencoding('utf8')

os.chdir("F:/new_srt")

#get words of srt file

###########################################

def get_word():

path = "F:/new_srt"

filelist = os.listdir(path)

for files in filelist:

print files

encoding = chardet.detect(open(files,'r').read())['encoding']

if encoding == 'utf-8':

data=pd.read_csv(files,encoding="utf-8",sep='\r',header=None)

elif encoding == 'GB2312':

try:

data=pd.read_csv(files,encoding="gbk",sep='\r',header=None)

except UnicodeDecodeError:

data=pd.read_csv(files,encoding="utf-8",sep='\r',header=None)

elif encoding == 'UTF-8-SIG':

data=pd.read_csv(files,encoding="UTF-8-SIG",sep='\r',header=None)

else:

print 'this is an error about %s' % files

data_new=pd.DataFrame(np.reshape(data.values, (-1,3)))

data_new.columns=['index','timecut','content']

filename = os.path.splitext(files)[0] #filetype = os.path.splitext(files)[1]

with open('F:/result.txt', 'a') as file:

file.write(str(filename)+' ' )

for item in data_new['content']:

file.write(item.decode("utf-8") +' ') #s=s.decode("utf-8")

file.write('\n')

if __name__ == '__main__':

get_word()

以上这篇python 读写文件包含多种编码格式的解决方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持python博客。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值