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使用plotly绘制数据图表的方法
Jul 18 Python
Python最火、R极具潜力 2017机器学习调查报告
Dec 11 Python
Python运维之获取系统CPU信息的实现方法
Jun 11 Python
对numpy下的轴交换transpose和swapaxes的示例解读
Jun 26 Python
pybind11和numpy进行交互的方法
Jul 04 Python
Python字符串大小写转换拼接删除空白
Sep 19 Python
Python3 pandas 操作列表实例详解
Sep 23 Python
Django中提示消息messages的设置方式
Nov 15 Python
Python发送手机动态验证码代码实例
Feb 28 Python
用python给csv里的数据排序的具体代码
Jul 17 Python
python中子类与父类的关系基础知识点
Feb 02 Python
Django如何与Ajax交互
Apr 29 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
使ecshop模板中可引用常量的实现方法
2011/06/02 PHP
Array of country list in PHP with Zend Framework
2011/10/17 PHP
常用PHP封装分页工具类
2017/01/14 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
php实现微信模板消息推送
2018/03/30 PHP
js同时按下两个方向键
2007/12/01 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
jquery 实现窗口的最大化不论什么情况
2013/09/03 Javascript
jquery 追加tr和删除tr示例代码
2013/09/12 Javascript
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
Extjs表单常见验证小结
2014/03/07 Javascript
jQuery实现的一个自定义Placeholder属性插件
2014/08/11 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
Grunt入门教程(自动任务运行器)
2015/08/06 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
jquery zTree异步加载、模糊搜索简单实例分享
2016/03/24 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
javascript实现弹幕墙效果
2019/11/28 Javascript
python中lambda()的用法
2017/11/16 Python
Python爬虫获取整个站点中的所有外部链接代码示例
2017/12/26 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
Django管理员账号和密码忘记的完美解决方法
2018/12/06 Python
使用Python实现将list中的每一项的首字母大写
2019/06/11 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
python框架django项目部署相关知识详解
2019/11/04 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
大学生毕业自我鉴定范文
2014/02/03 职场文书
2014年国庆节演讲稿精选范文1500字
2014/09/25 职场文书