从文件中读取数据

读取整个文件

这里假设在当前目录下有一个文件名为’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.141592653589793238462643383279------------

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

with open('pi_digits.txt') as f:for line1 in f:print line1print '------------'with open('pi_digits.txt') as f: # 需要重新打开文本进行读取for line2 in f:print line2.rstrip() # 删除字符串末尾的空白
3.141592653589793238462643383279------------
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中文件的读取和写入相关推荐

  1. python对文件的读操作有哪些方法-Python中文件的读取和写入操作

    从文件中读取数据 读取整个文件 这里假设在当前目录下有一个文件名为'pi_digits.txt'的文本文件,里面的数据如下: 3.1415926535 8979323846 2643383279 wi ...

  2. python对文件的读操作方法有哪些-Python中文件的读取和写入操作

    从文件中读取数据 读取整个文件 这里假设在当前目录下有一个文件名为'pi_digits.txt'的文本文件,里面的数据如下: 3.1415926535 8979323846 2643383279 wi ...

  3. 7.1 Python中文件的读取和写入

    文件操作 在Python中实现文件的读写操作可以通过Python的内置函数open实现,使用内置函数open时,我们可以指定文件名.操作模式(打开文件类型,字符型还是二进制型,以及所做操作,读.写.还 ...

  4. python中文件的读取与写入以及os模块

    1.文件读取的三部曲:打开 ---> 操作 ----> 关闭 r(默认参数): -只能读,不能写 -读取文件不存在 会报错 FileNotFoundError: [Errno 2] No ...

  5. C语言中文件的读取和写入

    C语言中文件的读取和写入 注意: 1.由于C是缓冲写 所以要在关闭或刷新后才能看到文件内容 2.电脑处理文本型和二进制型的不同 (因为电脑只认识二进制格式) 在C语言中写文件 //获取文件指针 FIL ...

  6. python文件的读取与写入_python中文件的读取与写入以及os模块

    1.文件读取的三部曲:打开 ---> 操作 ----> 关闭 r(默认参数): -只能读,不能写 -读取文件不存在 会报错 FileNotFoundError: [Errno 2] No ...

  7. 苹果系统python读取文件_python中文件的读取与写入以及os模块

    1.文件读取的三部曲:打开 ---> 操作 ----> 关闭 r(默认参数): -只能读,不能写 -读取文件不存在 会报错 FileNotFoundError: [Errno 2] No ...

  8. Python 技术篇 - 文件的读取和写入

    我们每次操作文件完一定要有 close() 这个操作,这个是对操作完的文件进行保存关闭.也是一个好习惯哦! 读操作 # 和我们的py文件在同一个文件夹下 filename = "hello. ...

  9. python入门文件读取与写入_使用Python对Dicom文件进行读取与写入的实现

    Pydicom 单张影像的读取 使用 pydicom.dcmread() 函数进行单张影像的读取,返回一个pydicom.dataset.FileDataset对象. import os import ...

最新文章

  1. 亿级PV超大型网站集群架构图形深度揭秘讲解
  2. BS-GX-018 基于SSM实现在校学生考试系统
  3. 【64QAM同步】基于FPGA/MATLAB的64QAM同步系统的实现
  4. java web 跨域_java web服务端CORS跨域配置
  5. Django中管理并发操作
  6. CCIE-LAB-SDN-第四篇-SD-WAN-2
  7. linux qt应用程序全屏,QT中MDI应用程序中更改子窗口大小或是全屏显示子窗口的方法...
  8. Hessian Matrix
  9. 软件开发生命周期及各阶段文档
  10. php max file uploads,php上传多文件max_file_uploads限制问题
  11. 计算机上显示找不到无线网络连接,为什么找不到无线网络,电脑上连接WIFI的图标不见了,怎么办?...
  12. 腹有诗书气自华——记环宇通软CEO骆永华 1
  13. 太阳光轨迹软件_轻松画太阳视运动轨迹
  14. Muli3D 1 下载与编译
  15. 反编译获取apk安装包源代码步骤
  16. 50天50个前端小项目(纯html+css+js)第十二天(FAQ 问题与回答框)
  17. 基于Vue实现的网页音乐播放器
  18. 【java】java中输出字符串中的单个字符及获得其长度
  19. 618战局天猫聚焦“商家体验”,创造确定性增长是核心目标
  20. 基于WIFI无线组网的水雨情远程监测预警系统

热门文章

  1. 巧用Fiddler开启运营商定制版路由器被阉割的功能,免去刷公版固件的风险
  2. Proxifier用法
  3. 分割蛋糕c语言实验报告,蛋糕制作实验报告.doc
  4. 数据驱动,联想凌拓与万国数据“第二次握手”
  5. Java 生成随机订单号
  6. 《.NET 软件工程师就业求职手册》(转)
  7. 虚拟机访问主机运行的项目(固定主机ip)
  8. 国二c语言题目给分,及三计算机国二c语言个别考题分析.docx
  9. c语言书籍推荐国二,推荐国二c语言笔试题库(含答案)可转TXT.doc
  10. POP3协议110端口渗透