Python中文件的读取和写入操作


Posted in Python onApril 27, 2018

从文件中读取数据

读取整个文件

这里假设在当前目录下有一个文件名为'pi_digits.txt'的文本文件,里面的数据如下:

3.1415926535
8979323846
2643383279

with open('pi_digits.txt') as f: # 默认模式为‘r',只读模式
  contents = f.read() # 读取文件全部内容
  print contents # 输出时在最后会多出一行(read()函数到达文件末会返回一个空字符,显示出空字符就是一个空行)
  print '------------'
  print contents.rstrip() # rstrip()函数用于删除字符串末的空白

3.1415926535
8979323846
2643383279
------------
3.1415926535
8979323846
2643383279

逐行读取

可以通过循环来实现逐行读取数据:

with open('pi_digits.txt') as f:
  for line1 in f:
    print line1 # 每行末尾会有一个换行符
  print '------------'
  for line2 in f:
    print line2.rstrip() # 此时文件已经读完,line2指向文本末尾,因此不会有输出

3.1415926535

8979323846

2643383279

------------

读取文件时相当于有一个指针在记录读取的位置,数据读到哪,这个指针就指到哪边,继续读取数据时会从该位置继续读取,因此上面代码中第二个循环中输出为空。将上述代码稍加修改如下:

with open('pi_digits.txt') as f:
  for line1 in f:
    print line1
  print '------------'
with open('pi_digits.txt') as f: # 需要重新打开文本进行读取
  for line2 in f:
    print line2.rstrip() # 删除字符串末尾的空白

3.1415926535

8979323846

2643383279

------------
3.1415926535
8979323846
2643383279

上述代码相当于第一次读取完后关闭该文件又重新打开进行读取。逐行读取数据也可以用readline()函数,如下:

with open('pi_digits.txt') as f: 
  # readline()每一次读取一行数据,并指向该行末尾
  line1 = f.readline() # 读取第一行数据(此时已经指向第一行末尾)
  line2 = f.readline() # 从上一次读取末尾开始读取(第二行)
  print line1.rstrip()
  print line2.rstrip()

3.1415926535
8979323846

有时候我们想要一次性读取全部数据并且按分开存储以便于后续的操作,当然用上面的循环可以实现,但python提供了更简单的方法readlines():

with open('pi_digits.txt') as f: 
  lines = f.readlines() # 读取文本中所有内容,并保存在一个列表中,列表中每一个元素对应一行数据
print lines # 每一行数据都包含了换行符
print '------------'
for line in lines:
  print line.rstrip()  
print '------------'
pi_str = '' # 初始化为空字符
for line in lines:
  pi_str += line.rstrip() #字符串连接
print pi_str

['3.1415926535\n', '8979323846\n', '2643383279\n']
------------
3.1415926535
8979323846
2643383279
------------
3.141592653589793238462643383279

写数据到文件

写数据有几种不同的模式,最常用的是w', ‘a', 分别表示擦除原有数据再写入和将数据写到原数据之后:

filename = 'write_data.txt'
with open(filename,'w') as f: # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
  f.write("I am Meringue.\n")
  f.write("I am now studying in NJTECH.\n")

此时会在当前路径下创建一个'write_data.txt'的文本文件,并向文件中写入数据如下:

I am Meringue.
I am now studying in NJTECH.

下面继续在该文件中加入新数据:

with open(filename,'a') as f: # 'a'表示append,即在原来文件内容后继续写数据(不清楚原有数据)
  f.write("I major in Machine learning and Computer vision.\n")

此时的文件内容为:

I am Meringue.
I am now studying in NJTECH.
I major in Machine learning and Computer vision.

总结

以上所述是小编给大家介绍的Python中文件的读取和写入操作,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python 中文乱码问题深入分析
Mar 13 Python
python自定义解析简单xml格式文件的方法
May 11 Python
python使用wmi模块获取windows下硬盘信息的方法
May 15 Python
Tensorflow环境搭建的方法步骤
Feb 07 Python
对Python中内置异常层次结构详解
Oct 18 Python
Python3.5文件修改操作实例分析
May 01 Python
python使用requests.session模拟登录
Aug 09 Python
python matplotlib库绘制条形图练习题
Aug 10 Python
python实现两个文件夹的同步
Aug 29 Python
Python读取多列数据以及用matplotlib制作图表方法实例
Sep 23 Python
Python 解析xml文件的示例
Sep 29 Python
pandas DataFrame.shift()函数的具体使用
May 24 Python
Python针对给定列表中元素进行翻转操作的方法分析
Apr 27 #Python
Python八大常见排序算法定义、实现及时间消耗效率分析
Apr 27 #Python
python读取csv文件并把文件放入一个list中的实例讲解
Apr 27 #Python
python脚本生成caffe train_list.txt的方法
Apr 27 #Python
如何使用Python的Requests包实现模拟登陆
Apr 27 #Python
Python可变参数*args和**kwargs用法实例小结
Apr 27 #Python
python实现对文件中图片生成带标签的txt文件方法
Apr 27 #Python
You might like
简单PHP会话(session)说明介绍
2016/08/21 PHP
php简单计算年龄的方法(周岁与虚岁)
2016/12/06 PHP
php取出数组单个值的方法
2018/03/12 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
javascript Array数组对象的扩展函数代码
2010/05/22 Javascript
Jvascript学习实践案例(开发常用)
2012/06/25 Javascript
原生js实现查找/添加/删除/指定元素的class
2013/04/12 Javascript
js open() 与showModalDialog()方法使用介绍
2013/09/10 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
2014/03/04 Javascript
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
2015/01/13 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
2015/03/04 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
jQuery中 $ 符号的冲突问题及解决方案
2016/11/04 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
基于vue+echarts数据可视化大屏展示的实现
2020/12/25 Vue.js
浅析Python中else语句块的使用技巧
2016/06/16 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
django 外键model的互相读取方法
2018/12/15 Python
Django unittest 设置跳过某些case的方法
2018/12/26 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
python构建指数平滑预测模型示例
2019/11/21 Python
Python实现括号匹配方法详解
2020/02/10 Python
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
ajax是什么及其工作原理
2012/02/08 面试题
旅游网创业计划书
2014/01/31 职场文书
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
售票员岗位职责
2015/02/15 职场文书
宾馆安全管理制度
2015/08/06 职场文书
Java实现注册登录跳转
2022/06/16 Java/Android