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 相关文章推荐
Hadoop中的Python框架的使用指南
Apr 22 Python
用Python实现一个简单的多线程TCP服务器的教程
May 05 Python
在Python中操作列表之List.append()方法的使用
May 20 Python
python编辑用户登入界面的实现代码
Jul 16 Python
idea创建springMVC框架和配置小文件的教程图解
Sep 18 Python
python实现矩阵打印
Mar 02 Python
python 杀死自身进程的实现方法
Jul 01 Python
centos7中安装python3.6.4的教程
Dec 11 Python
Python转换itertools.chain对象为数组的方法
Feb 07 Python
python中提高pip install速度
Feb 14 Python
scrapy redis配置文件setting参数详解
Nov 18 Python
如何用python实现一个HTTP连接池
Jan 14 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 动态多文件上传
2009/01/18 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
2013/06/27 PHP
php+xml实现在线英文词典查询的方法
2015/01/23 PHP
PHP永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
form自动提交实例讲解
2017/07/10 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
jQuery在vs2008及js文件中的无智能提示的解决方法
2010/12/30 Javascript
JS 进度条效果实现代码整理
2011/05/21 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
jQuery获取对象简单实现方法小结
2014/10/30 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
使用jquery获取url及url参数的简单实例
2016/06/14 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
vue v-on监听事件详解
2017/05/17 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
Angular.js中angular-ui-router的简单实践
2017/07/18 Javascript
微信小程序仿微信运动步数排行(交互)
2018/07/13 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
2019/09/25 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
Python 随机生成中文验证码的实例代码
2013/03/20 Python
python基础教程之Filter使用方法
2017/01/17 Python
Python3处理HTTP请求的实例
2018/05/10 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
解决python 上传图片限制格式问题
2019/10/30 Python
Python中低维数组填充高维数组的实现
2019/12/02 Python
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
创业计划书中包含的9个方面
2013/12/26 职场文书
给学校的建议书范文
2014/05/15 职场文书
求职自我评价怎么写
2015/03/09 职场文书
在职证明书模板
2015/06/15 职场文书
英语教学课后反思
2016/02/15 职场文书
导游词之无锡唐城
2019/12/12 职场文书
virtualenv隔离Python环境的问题解析
2022/06/21 Python