一、列出IO操作的标识符及描述

标识符 描述
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

二、读TXT文件

要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符。

>>> f = open('/Users/wangjuan/test.txt', 'r')
#文件打开成功,调用read()方法可以一次读取文件的全部内容
>>> f.read()
'Hello, it is a test case!'
#调用close()方法关闭文件
>>> f.close()

文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的。

由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try ... finally来实现:

try:f = open('/Users/wangjuan/test.txt', 'r')print(f.read())
finally:if f:f.close()

但是每次都这么写实在太繁琐,所以,Python引入了with语句来自动帮我们调用close()方法:

with open('/Users/wangjuan/test.txt', 'r') as f:print(f.read())

readlines() 方法用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for... in ... 结构进行处理。如果碰到结束符 EOF 则返回空字符串。举例如下:

file = '/Users/wangjuan/test.txt'
f = open(file, 'r')
# 按行读出文件内容
sourceInLines = f.readlines()
f.close()
# 定义一个空列表,用来存储结果
new = []
for line in sourceInLines:temp1 = line.strip('\n')  # 去掉每行最后的换行符'\n'temp2 = temp1.split(',')  # 以','为标志,将每行分割成列表new.append(temp2)  # 将上一步得到的列表添加到new中

三、写TXT文件

写文件和读文件是一样的,唯一区别是调用open()函数时,传入标识符'w'或者'wb'表示写文本文件或写二进制文件:

>>> f = open('/Users/wangjuan/test.txt', 'w')
>>> f.write('Hello, world!')
>>> f.close()

可以反复调用write()来写入文件,但是务必要调用f.close()来关闭文件。当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。忘记调用close()的后果是数据可能只写了一部分到磁盘,剩下的丢失了。所以,还是用with语句来得保险:

import osdef write_re(result,type):file = str(os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, "data/result.txt")))with open(file, type) as f:f.write(result)

当然如果你想写入的内容继续叠加的话,可以使用标识符'a'或者' a+'或者'ab+'。


以上,对你有帮助的话,点赞吧~

作者:搁浅
出处: http://www.cnblogs.com/xiaoxi-3-/
如果对您有帮助,请关注我的同名简书:https://www.jianshu.com/u/da1677475c27
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

Python-TXT文本操作相关推荐

  1. python txt文本操作

    1. 读写模式 模式 要求 r 读取文件,若文件不存在则会报错 w 写入文件,若文件不存在则会先创建再写入,会覆盖原文件 a 写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末 ...

  2. 【新星计划】 Python的txt文本操作-读、写

    Python的txt文本操作-读.写 读取txt文本 python常用的读取文件函数有三种read().readline().readlines() 以读取上述txt为例,看一下三者的区别 read( ...

  3. Python代码 | 文本操作 统计英文文本中,每个字母出现的次数

    Python代码 | 文本操作 统计英文文本中,每个字母出现的次数 # -*- coding: utf-8 -*- # 使用oepn获取文件路径 # path=open("arrogant. ...

  4. Python之文本操作

    Python之文本操作 文本文件 文本文件是一种典型的顺序文件,其文件的逻辑结构又属于流式文件.文本文件是指以 ASCII 码方式(也称文本方式)存储的文件,更确切地说,英文.数字等字符存储的是 AS ...

  5. python txt文本特定字符串提取

    方法一: 思路:将txt文件读成一个字符串,在整个字符串中进行匹配,匹配到的是数组,再从数组的对应位置取数据 txt样例: ------begin checkaccuracy--------- Val ...

  6. python txt文本转json格式

    这两天压测项目组没提供文档全靠抓包,抓取的参数是这样的loginname:jsdl,由于参数太多一条一条添加太麻烦,手动转json也比较麻烦,由于开发人员不配合只能自己动手, import json ...

  7. aspnet中gridview文本只显示开始几个文本_软网推荐:三个小软件 轻松解决文本操作难题...

    TXT文本操作在Windows操作中算是比较容易的事了,但简单的文本操作也会遇到难题.例如,对于我们反复需要使用的多个信息,如果仅靠Ctrl+C和Ctrl+V来回复制.粘贴,效率会极低:再如,对于一些 ...

  8. android 文件流转换为zip文件_PDF文件如何转换为TXT文本?教您一招高效转换的方法...

    我们见过很多的文件格式,如果说最常见的文件格式想必要属于TXT文本格式了. 大多数人都用过TXT文本格式临时记录几件事或者临时记录几句话,毕竟TXT文件是微软在操作系统中附带的一种文本格式. 如果说T ...

  9. excel转换txt文本(matlab版本)

    本文讲解matlab如何将excel转换成txt文本,用到主要matlab函数xlsread(),fprint()两个函数,xlsread()读取excel文件,fprint()将字符串输出到文本. ...

  10. [Python学习] 专题五.列表基础知识 二维list排序、获取下标和处理txt文本实例

    通常测试人员或公司实习人员需要处理一些txt文本内容,而此时使用Python是比较方便的语言.它不光在爬取网上资料上方便,还在NLP自然语言处理方面拥有独到的优势.这篇文章主要简单的介绍使用Pytho ...

最新文章

  1. linux上传文件到服务器
  2. 【源码类】开源项目汇总
  3. 选择结构_穿透的switch语句
  4. 《Inside XAML》翻译半成品
  5. java 二阶段提交,二阶段提交协议(Two Phase Commitment Protocol)
  6. 牛客网模拟笔试——膨胀的牛牛(JavaScript)
  7. Building a Better Vocabulary: Lecture 1 Five Principles for Learning Vocabulary
  8. c语言学生管理p1指向编译错误,在ubuntu下用C语言编写一个学生管理系统,编译时出错,紧急求救!!!...
  9. 巴别塔圣经_巴别塔简短简要指南
  10. 常用计算机二级题库,2016最新计算机二级office题库
  11. 理解运放的虚断和虚短
  12. 最全的CDR抠图教程
  13. pandas按行、按列合并数据
  14. 领存技术至强 E5-2648L 6U VPX 通用密集计算刀片
  15. UBOOT----基于itop4412开发板,从0开始,慢慢摸索UBOOT的启动流程和系统组织结构(一)
  16. wps底纹去不掉_WPS广告太多,关又关不掉,其实它有无广告的版本
  17. 手把手教你用Arduino接入阿里云物联网平台,ESP8266连接阿里云物联网平台必看教程...
  18. 仿菁优网首页动画效果
  19. mysql勒索_mysql数据库被勒索删库怎么办
  20. 哪款软件可以测试刘海,测试自己适合什么刘海 按照脸型来选一测便知

热门文章

  1. RHCSA 系列(六): 使用 Parted 和 SSM 来配置和加密系统存储
  2. MongoDB实现ID自增长
  3. 灵玖软件大数据采集技术提高出版行业效率
  4. ShaderLab Syntax 基本语法
  5. 《Linux内核设计与实现》读书笔记(七)- 中断处理【转】
  6. Spring中的事务管理详解
  7. CAS SSO 原理 - 基础模式
  8. ios MKNetworkKit 的使用
  9. Active Directory还原工具之三Software Active Directory Recycle Bin PowerPack
  10. const在函数声明中的应用(转)