原文链接: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中使用文件的读取编码问题相关推荐

  1. python二级选择题及答案_转载 |python二级选择题与分析(6)

    算法的时间复杂度是指 A 执行算法程序所需要的时间 B 算法程序的长度 C 算法程序中的指令条数 D 算法执行过程中所需要的基本运算次数 正确答案: D 下列关于栈的叙述中正确的是 A 在栈中只能插入 ...

  2. python解放二次开发_[转载]Python二次开发程序详解

    ###################################### ## Fundamentschwingungsstudie ## ## nur geeignet fuer ABAQUS ...

  3. java中的dispose函数_[转载]java中的dispose()方法

    这是我第100篇IT技术文章,也正好让我实现了一个完整的从客户端输入参数,使用遗传算法计算生产排程的实例,前端由客户输入种群大小,遗传代数,交叉概率,变异概率,零件数,机器数,时间矩阵,机器矩阵,经运 ...

  4. matlab中单独存图_[转载]matlab中保存图片的方法

    matlab中保存图片的方法 一.一种是出来图形窗口后手动保存(这儿又可以分两种): 1 直接从菜单保存,有fig,eps,jpeg,gif,png,bmp等格式. 2 edit------〉copy ...

  5. 无法从套接字中获取更多数据_数据科学中应引起更多关注的一个组成部分

    无法从套接字中获取更多数据 介绍 (Introduction) Data science, machine learning, artificial intelligence, those terms ...

  6. python二进制文件 删除尾部数据_在Python中读取和切片二进制数据文件的最快方法...

    我有一个处理脚本,用于提取"uint16"类型的二进制数据文件,并一次以6400块的形式进行各种处理.该代码最初是用Matlab编写的,但由于分析代码是用 Python编写的,我们 ...

  7. python读取数据文件夹_使用python依次读取文件中的所有csv格式的数据

    使用python依次读取文件中的所有csv格式的数据: #coding=gbk import pandas as pd import os path = r'D:\ml_datasets\PHM\c6 ...

  8. python解压到指定文件夹_在Python中压缩和解压文件

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 如果你已经使用计算机一段时间,你可能遇到了.zip扩展名的文件.它们是可以保存许多其他文件,文件夹和子文件 ...

  9. python 写入文件编码_使用Python写入文本文件时的编码问题

    我正在编写一个程序,用一个简短的python脚本"手动"安排一个csv文件,使其成为正确的json语法.从输入文件中,我使用readlines()将文件格式化为一个行列表,然后将其 ...

最新文章

  1. Linux在shell终端中清空DNS缓存,刷新DNS的方法(ubuntu,debian)
  2. MySQL数据库数据类型以及INT(M)的含义
  3. 写出现代计算机网络的三个方面的应用,《计算机应用基础》统考模拟试题一及参考答案0...
  4. Linux提权:常用三种方法
  5. selenium call javascript function
  6. 在matplotlib中改变tick(标签)的字体大小
  7. Cmake构建_设置全局编译选项
  8. c语言社交网络,图论在社交网络中的应用研究
  9. 《软件工程导论第6版》--张海藩 牟永敏 课后答案及其详解 第4章 形式化说明技术
  10. java如何实现联网象棋代码_java中国象棋联网对战源码
  11. 勒索软件频繁升级,了解常见勒索软件很有必要
  12. 解密微信电脑版image文件夹下缓存的用户图片
  13. 基于H5的Speedtest网速测试工具搭建
  14. 短视频直播平台系统app开发搭建方案,助力企业搭建细分领域短视频app,开发多种短视频变现模式
  15. cocos2dx点击按钮更改按钮图片
  16. 云宏Ceph分布式存储高性能设计
  17. 月嫂公司如何把一次性的生意,变成源源不断的生钱机器
  18. 公民实验室:史上危险的手机间谍软件已感染45个国家/地区
  19. jquery修改图片src
  20. 在二叉树中找到两个节点的最近公共祖先(C++)

热门文章

  1. socket timeout是什么引起的_MySQL C API 参数 MYSQL_OPT_READ_TIMEOUT 的一些行为分析
  2. linux 关闭端口_手把手教你在Linux中快速检测端口的 3 个小技巧
  3. addEventListener事件委托
  4. PyCherm的常用快捷键总结
  5. Django REST FRAMEWORK swagger(一)框架详解
  6. BZOJ 1878: [SDOI2009]HH的项链 | 莫队
  7. 两点之间最短路径:弗洛伊德算法
  8. table 样式详解
  9. mybatis自己学习的一些总结
  10. Postgre合并多行数据为一行