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

news/2024/7/17 9:50:10

今天写一个脚本文件,需要将多个文件中的内容汇总到一个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博客。


http://www.niftyadmin.cn/n/4334222.html

相关文章

es6比较两个一样的对象_前端框架必学技能-ES6之class

传统的 JavaScript 中只有对象,没有类的概念。它是基于原型的面向对象语言。原型对象特点就是将自身的属性共享给新对象。这样的写法相对于其它传统面向对象语言来讲,很有一种独树一帜的“感脚”!非常容易让人困惑!首先大家要明白…

是什么码_穿着84码的鞋是什么感受?

如果今天让平时穿42的你穿上双倍大码数的鞋会是什么感受?这不是在开玩笑哦,在之前由英国设计师Martine Rose与Nike的联名企划中,就可让你圆梦:穿超超超大鞋是什么感受。Martine Rose x Nike Air Monarch IVemm相信有不少朋友都被吓…

4删除后果_如果在手机上见到这4类图片,建议赶快删除!现在知道还不算晚

手机做为常用的一种工具,大家是不是经常会在手机内保存一些图片,资料等,这些图片涉及的范围比较广,部分还会涉及到大家的隐私,所以大家用完后,一定要记得删除哦!现在知道还不算太晚,…

bigdecimal java 最大值_Java中BigDecimal类的常用方法

1.简介BigDecimal类位于java.math.BigDecimal包下。使用此类可以完成大的小数操作,而且也可以使用此类进行精确的四舍五入,这一点在开发中经常使用。对于不需要任何准确计算精度的程序可以直接使用float或double完成,但是如果需要精确计算结果…

使用 Debian 从 0 开始搭建 hexo 博客

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。 Hexo 产生的静态文件只要放到任何支持 html 的空间或者服务器均可访问。主要的选择方案有以下两…

c++ socket编程 发送和接收多条消息_python中的网络编程和多线程(二)

日常生活中大多数连接都是可靠的TCP连接。创建TCP连接时,主动发起连接的叫客户端,被动响应连接叫服务器一、TCP客户端编程举个例子,当在浏览器中访问新浪时,自己的计算机就是客户端,浏览器会主动向新浪的服务器发起连接…

runC爆严重漏洞影响Kubernetes、Docker,阿里云修复runC漏洞的公告

2月12日,春节刚过。朋友圈就看到《runC爆严重漏洞:Kubernetes、Docker等中招》的消息。 runC 是 Docker,Kubernetes 等依赖容器的应用程序的底层容器运行时。此次爆出的严重安全漏洞可使攻击者以 root 身份在主机上执行任何命令。 容器的安全…

Flexbox和Grid有什么区别?

flexbox和grid(网格)之间有很多相似之处,首先是它们用于布局,并且比之前的任何布局技术都强大得多。它们可以拉伸和收缩,它们可以使DIV居中,它们可以重新排序,它们可以对齐物体......有很多布局…