python中读取文件编码_[转载]python中使用文件的读取编码问题
原文链接:https://www.cnblogs.com/qianboping/p/6524420.html
今天想写个程序合并文件的,以前一直觉得python的编码解码好烦,只要处理文件合并之类的都是用C# 写,但是最近用的是linux,也没有vs,就只能乖乖的用python 写了,早上看了下,也没有我想的负责,只能说以前太那啥了。。。。好了,闲话少说,下面先简单介绍下文件读取操作吧。
首先说明的是我用的python2.7,python读取文件内容主要有下面几种常用方法:先来个测试,方面大家可以清晰了解每种方法具体是啥样子的。
文件的内容是下面这样的
一种:fopen.read(size)
参数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)
读文件差不多就这样了,下面我们来说下写文件,这就涉及到编码问题了,python中的写文件为py文件默认是ASCII编码 ,所以在显示中文的时候,会t提示SyntaxError: Non-ASCII character之类的错误,首先在代码前端加入:
# coding=utf-8
unicode是一个内置函数,第二个参数指示源字符串的编码格式。
decode是任何字符串具有的方法,将字符串转换成unicode格式,参数指示源字符串的编码格式。
encode也是任何字符串具有的方法,将字符串转换成参数指定的格式。
用 u'汉字' 构造出来的是unicode类型,不用的话构造出来是str类型
从unicode转str,要用encode方法
从str转unicode,要用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')#这是换行
设置默认编码
设置默认编码,我觉得对于一些文件的读写还是挺有用处的,形式如下面这样
import sys
sys.getdefaultencoding()
reload(sys)
sys.setdefaultencoding('utf-8')
好了,读写文件差不多这些也够用了,下面说个简单的正则,这个放在下篇了
python中读取文件编码_[转载]python中使用文件的读取编码问题相关推荐
- python二级选择题及答案_转载 |python二级选择题与分析(6)
算法的时间复杂度是指 A 执行算法程序所需要的时间 B 算法程序的长度 C 算法程序中的指令条数 D 算法执行过程中所需要的基本运算次数 正确答案: D 下列关于栈的叙述中正确的是 A 在栈中只能插入 ...
- python解放二次开发_[转载]Python二次开发程序详解
###################################### ## Fundamentschwingungsstudie ## ## nur geeignet fuer ABAQUS ...
- java中的dispose函数_[转载]java中的dispose()方法
这是我第100篇IT技术文章,也正好让我实现了一个完整的从客户端输入参数,使用遗传算法计算生产排程的实例,前端由客户输入种群大小,遗传代数,交叉概率,变异概率,零件数,机器数,时间矩阵,机器矩阵,经运 ...
- matlab中单独存图_[转载]matlab中保存图片的方法
matlab中保存图片的方法 一.一种是出来图形窗口后手动保存(这儿又可以分两种): 1 直接从菜单保存,有fig,eps,jpeg,gif,png,bmp等格式. 2 edit------〉copy ...
- 无法从套接字中获取更多数据_数据科学中应引起更多关注的一个组成部分
无法从套接字中获取更多数据 介绍 (Introduction) Data science, machine learning, artificial intelligence, those terms ...
- python二进制文件 删除尾部数据_在Python中读取和切片二进制数据文件的最快方法...
我有一个处理脚本,用于提取"uint16"类型的二进制数据文件,并一次以6400块的形式进行各种处理.该代码最初是用Matlab编写的,但由于分析代码是用 Python编写的,我们 ...
- python读取数据文件夹_使用python依次读取文件中的所有csv格式的数据
使用python依次读取文件中的所有csv格式的数据: #coding=gbk import pandas as pd import os path = r'D:\ml_datasets\PHM\c6 ...
- python解压到指定文件夹_在Python中压缩和解压文件
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 如果你已经使用计算机一段时间,你可能遇到了.zip扩展名的文件.它们是可以保存许多其他文件,文件夹和子文件 ...
- python 写入文件编码_使用Python写入文本文件时的编码问题
我正在编写一个程序,用一个简短的python脚本"手动"安排一个csv文件,使其成为正确的json语法.从输入文件中,我使用readlines()将文件格式化为一个行列表,然后将其 ...
最新文章
- Linux在shell终端中清空DNS缓存,刷新DNS的方法(ubuntu,debian)
- MySQL数据库数据类型以及INT(M)的含义
- 写出现代计算机网络的三个方面的应用,《计算机应用基础》统考模拟试题一及参考答案0...
- Linux提权:常用三种方法
- selenium call javascript function
- 在matplotlib中改变tick(标签)的字体大小
- Cmake构建_设置全局编译选项
- c语言社交网络,图论在社交网络中的应用研究
- 《软件工程导论第6版》--张海藩 牟永敏 课后答案及其详解 第4章 形式化说明技术
- java如何实现联网象棋代码_java中国象棋联网对战源码
- 勒索软件频繁升级,了解常见勒索软件很有必要
- 解密微信电脑版image文件夹下缓存的用户图片
- 基于H5的Speedtest网速测试工具搭建
- 短视频直播平台系统app开发搭建方案,助力企业搭建细分领域短视频app,开发多种短视频变现模式
- cocos2dx点击按钮更改按钮图片
- 云宏Ceph分布式存储高性能设计
- 月嫂公司如何把一次性的生意,变成源源不断的生钱机器
- 公民实验室:史上危险的手机间谍软件已感染45个国家/地区
- jquery修改图片src
- 在二叉树中找到两个节点的最近公共祖先(C++)
热门文章
- socket timeout是什么引起的_MySQL C API 参数 MYSQL_OPT_READ_TIMEOUT 的一些行为分析
- linux 关闭端口_手把手教你在Linux中快速检测端口的 3 个小技巧
- addEventListener事件委托
- PyCherm的常用快捷键总结
- Django REST FRAMEWORK swagger(一)框架详解
- BZOJ 1878: [SDOI2009]HH的项链 | 莫队
- 两点之间最短路径:弗洛伊德算法
- table 样式详解
- mybatis自己学习的一些总结
- Postgre合并多行数据为一行