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代码打包为jar软件的简单方法
Aug 04 Python
socket + select 完成伪并发操作的实例
Aug 15 Python
python如何在列表、字典中筛选数据
Mar 19 Python
CentOS 7 安装python3.7.1的方法及注意事项
Nov 01 Python
python微信好友数据分析详解
Nov 19 Python
python制作mysql数据迁移脚本
Jan 01 Python
利用Python正则表达式过滤敏感词的方法
Jan 21 Python
Django rest framework jwt的使用方法详解
Aug 08 Python
解决Djang2.0.1中的reverse导入失败的问题
Aug 16 Python
Python configparser模块配置文件过程解析
Mar 03 Python
对Matlab中共轭、转置和共轭装置的区别说明
May 11 Python
MATLAB 如何求取离散点的曲率最大值
Apr 16 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
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
php防注入及开发安全详细解析
2013/08/09 PHP
php面象对象数据库操作类实例
2014/12/02 PHP
深入浅析PHP7.0新特征(五大新特征)
2015/10/29 PHP
PHP环境中Memcache的安装和使用
2015/11/05 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
PHP进阶学习之依赖注入与Ioc容器详解
2019/06/19 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
nodejs的require模块(文件模块/核心模块)及路径介绍
2013/01/14 NodeJs
JavaScript实现函数返回多个值的方法
2015/06/09 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
2016/12/29 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
React Native使用Modal自定义分享界面的示例代码
2017/10/31 Javascript
nginx配置React静态页面的方法教程
2017/11/03 Javascript
浅谈javascript错误处理
2019/08/11 Javascript
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
[06:15]2016国际邀请赛中国区预选赛单车采访:我顶WINGS
2016/06/27 DOTA
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
python中的装饰器详解
2015/04/13 Python
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
python判断数字是否是超级素数幂
2018/09/27 Python
django的settings中设置中文支持的实现
2019/04/28 Python
如何使用Python标准库进行性能测试
2019/06/25 Python
python实现两张图片拼接为一张图片并保存
2019/07/16 Python
用Python配平化学方程式的方法
2019/07/20 Python
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
德国综合购物网站:OTTO
2018/11/13 全球购物
电脑饰品店的创业计划书
2014/01/21 职场文书
《美丽的小兴安岭》教学反思
2014/02/26 职场文书
篮球比赛策划方案
2014/06/05 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
2014年组织部工作总结
2014/11/14 职场文书
爱国主义影片观后感
2015/06/18 职场文书
关于战胜挫折的名言警句大全!
2019/07/05 职场文书
浅谈JavaScript作用域
2021/12/06 Javascript