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遍历数组的方法小结
Apr 30 Python
在Apache服务器上同时运行多个Django程序的方法
Jul 22 Python
深入理解Python中命名空间的查找规则LEGB
Aug 06 Python
Python单例模式的两种实现方法
Aug 14 Python
有趣的python小程序分享
Dec 05 Python
Python面向对象之继承代码详解
Jan 29 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
Oct 14 Python
PyGame贪吃蛇的实现代码示例
Nov 21 Python
如何关掉pycharm中的python console(图解)
Oct 31 Python
Python中BeautifuSoup库的用法使用详解
Nov 15 Python
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
Jun 03 Python
python 判断字符串当中是否包含字符(str.contain)
Jun 01 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
全国FM电台频率大全 - 12 安徽省
2020/03/11 无线电
PHP中改变图片的尺寸大小的代码
2011/07/17 PHP
详解Laravel视图间共享数据与视图Composer
2016/08/04 PHP
基于laravel Request的所有方法详解
2019/09/29 PHP
javaScript对象和属性的创建方法
2007/01/15 Javascript
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
Web开发之JavaScript
2012/03/29 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
2016/05/05 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
JS比较两个数值的大小实例
2016/11/25 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
webpack中使用iconfont字体图标的方法
2018/02/22 Javascript
element-ui 表格实现单元格可编辑的示例
2018/02/26 Javascript
vue 虚拟dom的patch源码分析
2018/03/01 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
详解vuex commit保存数据技巧
2018/12/25 Javascript
微信小程序渲染性能调优小结
2019/07/30 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
[05:34]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY第二弹
2014/06/25 DOTA
python numpy函数中的linspace创建等差数列详解
2017/10/13 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
基于python实现ROC曲线绘制广场解析
2020/06/28 Python
学会迭代器设计模式,帮你大幅提升python性能
2021/01/03 Python
结构和类有什么异同
2012/07/16 面试题
日语翻译个人求职的自我评价
2013/10/14 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
司机岗位职责说明书
2014/07/29 职场文书
二手车交易协议书标准版
2014/11/16 职场文书
python爬取某网站原图作为壁纸
2021/06/02 Python
Python的三个重要函数详解
2022/01/18 Python