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 Matplotlib库入门指南
May 18 Python
Python编程实现蚁群算法详解
Nov 13 Python
python 矩阵增加一行或一列的实例
Apr 04 Python
python购物车程序简单代码
Apr 18 Python
对pandas进行数据预处理的实例讲解
Apr 20 Python
Python socket实现的简单通信功能示例
Aug 21 Python
Linux 修改Python命令的方法示例
Dec 03 Python
Python迭代器iterator生成器generator使用解析
Oct 24 Python
使用pyqt 实现重复打开多个相同界面
Dec 13 Python
python分布式计算dispy的使用详解
Dec 22 Python
Python文件读写w+和r+区别解析
Mar 26 Python
Python爬虫获取豆瓣电影并写入excel
Jul 31 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开发环境配置记录
2011/01/14 PHP
php牛逼的面试题分享
2013/01/18 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
6个超实用的PHP代码片段
2015/08/10 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
php测试kafka项目示例
2020/02/06 PHP
JavaScript语法着色引擎(demo及打包文件下载)
2007/06/13 Javascript
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
JS使用正则表达式实现关键字替换加粗功能示例
2016/08/03 Javascript
Javascript中apply、call、bind的巧妙使用
2016/08/18 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
js实现音频控制进度条功能
2017/04/01 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
Vue.js 点击按钮显示/隐藏内容的实例代码
2018/02/08 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
微信小程序时间控件picker view使用详解
2018/12/28 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
Vue 实现分页与输入框关键字筛选功能
2020/01/02 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
2020/07/20 Javascript
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
Pytorch 实现权重初始化
2019/12/31 Python
基于Numba提高python运行效率过程解析
2020/03/02 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
Python虚拟环境venv用法详解
2020/05/25 Python
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
百思买加拿大:Best Buy Canada
2018/03/20 全球购物
蔻驰法国官网:COACH法国
2018/11/14 全球购物
《雪地里的小画家》教学反思
2014/02/22 职场文书
领导班子四风对照检查材料范文
2014/09/27 职场文书
出售房屋协议书范本
2014/10/06 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书
大学升旗仪式主持词
2015/07/04 职场文书
缅怀先烈主题班会
2015/08/14 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
浅谈Redis的几个过期策略
2021/05/27 Redis