Python基础之文件读取的讲解


Posted in Python onFebruary 16, 2019
with open(filename) as fp: 
  dataMat = []
  for line in fp.readlines():
          # fp.readlines()返回一个list,list of strs
          # 也即line类型为`str`
    curLine = line.strip().split('\t')
          # 只有`str`类型才有strip()成员函数,
          # 在经过split()分割,得到list类型
          # 也即curLine类型为list
          # curLine 仍然是由字符串构成的list
    dataMat.extend([float(entry) for entry in curLine])
          # 对每一个类型进行强转

文件流成员函数

(1)fp.readlines():返回的是由字符串构成的 list,list of strs(文件中的每一行为一个字符串,划分行的标识是\n(换行符))

(2)str.strip():strip() 是字符串的成员函数,strip()的返回值仍然为字符串

(3)str.split():split() 是字符串的成员函数,返回值是是字符串构成的 list,list of strs

(4)从文件中读取的数据(经过行,再对行切分)都是字符串类型,如果需要转换为数值,需要强制类型转换。

read()、readlines()、readline()

(1)read():读取全部(自然是置于内存中),返回类型为 str

(2)readlines():读取全部行(置于内存中),list of strs(较适合按行迭代)

for line in fp.readlines():
  ...
                # line 中的内容其实就是 readline 的内容

(3)readline():逐行读取,返回类型为 str

while True:
  line = fp.readline()
  if not line:
    break
  ...

当要读取的文件过大,应优先使用 readline() 逐行读取,出于内存的考虑。

io.UnsupportedOperation: read

也即不支持读操作,为什么 with open() as fp: fp(文件流)却不可以读呢?获取文件的mode(模式)不对,如果设置成了w或者wb,就意味着只写模式。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
python 参数列表中的self 显式不等于冗余
Dec 01 Python
Python对列表去重的多种方法(四种方法)
Dec 05 Python
对python:threading.Thread类的使用方法详解
Jan 31 Python
Python3.6实现带有简单界面的有道翻译小程序
Apr 16 Python
利用python将图片版PDF转文字版PDF
May 03 Python
Python3 实现文件批量重命名示例代码
Jun 03 Python
详解python深浅拷贝区别
Jun 24 Python
django 连接数据库 sqlite的例子
Aug 14 Python
Python开发企业微信机器人每天定时发消息实例
Mar 17 Python
django正续或者倒序查库实例
May 19 Python
Python3爬虫中Ajax的用法
Jul 10 Python
Python 处理日期时间的Arrow库使用
Aug 18 Python
解决Python3 被PHP程序调用执行返回乱码的问题
Feb 16 #Python
Python3 修改默认环境的方法
Feb 16 #Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
Feb 16 #Python
对Python3 解析html的几种操作方式小结
Feb 16 #Python
Python实现爬取马云的微博功能示例
Feb 16 #Python
对Python3 * 和 ** 运算符详解
Feb 16 #Python
Python docx库用法示例分析
Feb 16 #Python
You might like
php网页后退不再出现过期
2007/03/08 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
PHP速成大法
2015/01/30 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
2017/06/07 PHP
jQuery 入门讲解1
2009/04/15 Javascript
JavaScript将Table导出到Excel实现思路及代码
2013/03/13 Javascript
JavaScript中数据结构与算法(四):串(BF)
2015/06/19 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
Three.js基础部分学习
2017/01/08 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
Node.js Buffer用法解读
2018/05/18 Javascript
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
OpenLayers3实现对地图的基本操作
2020/09/28 Javascript
Ant Design的可编辑Tree的实现操作
2020/10/31 Javascript
用Python写一个无界面的2048小游戏
2016/05/24 Python
Python使用分布式锁的代码演示示例
2018/07/30 Python
python实现随机梯度下降法
2020/03/24 Python
Python文件监听工具pyinotify与watchdog实例
2018/10/15 Python
pandas通过loc生成新的列方法
2018/11/28 Python
浅谈Python 列表字典赋值的陷阱
2019/01/20 Python
Flask教程之重定向与错误处理实例分析
2019/08/01 Python
jupyter notebook 多行输出实例
2020/04/09 Python
python实现自动清理重复文件
2020/08/24 Python
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
2016/12/30 HTML / CSS
HTML5 Canvas绘制文本及图片的基础教程
2016/03/14 HTML / CSS
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
一套中级Java程序员笔试题
2015/01/14 面试题
优秀大学生的自我评价
2014/01/16 职场文书
董事长助理岗位职责
2014/02/18 职场文书
地理教师岗位职责
2014/03/16 职场文书
国际贸易求职信
2014/07/05 职场文书
2014年教师批评与自我批评思想汇报
2014/09/20 职场文书
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS
Python数据分析入门之数据读取与存储
2021/05/13 Python