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实用日期时间处理方法汇总
May 09 Python
python实现数据导出到excel的示例--普通格式
May 03 Python
Python+pandas计算数据相关系数的实例
Jul 03 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
May 07 Python
详解python 爬取12306验证码
May 10 Python
python SQLAlchemy 中的Engine详解
Jul 04 Python
Python 用三行代码提取PDF表格数据
Oct 13 Python
Python通过4种方式实现进程数据通信
Mar 12 Python
django使用F方法更新一个对象多个对象字段的实现
Mar 28 Python
解决pycharm下pyuic工具使用的问题
Apr 08 Python
pycharm实现猜数游戏
Dec 07 Python
Python3 多线程(连接池)操作MySQL插入数据
Jun 09 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
一个简单实现多条件查询的例子
2006/10/09 PHP
Symfony2函数用法实例分析
2016/03/18 PHP
PHP自定义函数格式化json数据示例
2016/09/14 PHP
PHP设置images目录不充许http访问的方法
2016/11/01 PHP
php使用环形链表解决约瑟夫问题完整示例
2018/08/07 PHP
Laravel相关的一些故障解决
2020/08/19 PHP
jQuery中before()方法用法实例
2014/12/25 Javascript
JS实现网页滚动条感应鼠标变色的方法
2015/02/26 Javascript
JavaScript判断undefined类型的正确方法
2015/06/30 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
2015/09/22 Javascript
学习JavaScript设计模式(多态)
2015/11/25 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
js自定义弹框插件的封装
2020/08/24 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
夯基础之手撕javascript继承详解
2020/11/09 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
[00:55]深扒TI7聊天轮盘语音出处3
2017/05/11 DOTA
初学Python实用技巧两则
2014/08/29 Python
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
学习python之编写简单简单连接数据库并执行查询操作
2016/02/27 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
Python列表如何更新值
2020/05/27 Python
CSS3中引入多种自定义字体font-face
2020/06/12 HTML / CSS
vivo智能手机官方商城:vivo
2016/09/22 全球购物
电大自我鉴定
2013/10/27 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
篮球社团活动总结
2014/06/27 职场文书
2015年保送生自荐信
2015/03/24 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
如何书写先进事迹材料?
2019/07/02 职场文书
css3应用示例:新增的选择器
2022/03/16 HTML / CSS