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基于QRCode实现生成二维码的方法【下载,安装,调用等】
Jul 11 Python
在python3环境下的Django中使用MySQL数据库的实例
Aug 29 Python
python实现聚类算法原理
Feb 12 Python
python 实现数组list 添加、修改、删除的方法
Apr 04 Python
Python 利用切片从列表中取出一部分使用的方法
Feb 01 Python
Python数据类型之Dict字典实例详解
May 07 Python
python中的colorlog库使用详解
Jul 05 Python
python使用requests.session模拟登录
Aug 09 Python
在Django中实现添加user到group并查看
Nov 18 Python
pycharm部署、配置anaconda环境的教程
Mar 24 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
Jul 03 Python
python调用摄像头的示例代码
Sep 28 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
joomla内置的表单验证功能使用方法
2010/06/11 PHP
apache和php之间协同工作的配置经验分享
2013/04/08 PHP
php简单浏览目录内容的实现代码
2013/06/07 PHP
Opcache导致php-fpm崩溃nginx返回502
2015/03/02 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
PHP基于array_unique实现二维数组去重
2020/07/14 PHP
JavaScript去掉空格的方法集合
2010/12/28 Javascript
关于URL中的特殊符号使用介绍
2011/11/03 Javascript
js原生appendChild的bug解决心得分享
2013/07/01 Javascript
基于javascript实现九宫格大转盘效果
2020/05/28 Javascript
基于JavaScript Array数组方法(新手必看篇)
2016/08/20 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
基于Angularjs+mybatis实现二级评论系统(仿简书)
2017/02/13 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
2018/01/07 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
RxJS在TypeScript中的简单使用详解
2020/04/13 Javascript
VSCode launch.json配置详细教程
2020/06/18 Javascript
[01:06:54]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第二场 2月28日
2021/03/11 DOTA
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
Python兔子毒药问题实例分析
2015/03/05 Python
利用python打印出菱形、三角形以及矩形的方法实例
2017/08/08 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
Python实现按逗号分隔列表的方法
2018/10/23 Python
django使用admin站点上传图片的实例
2019/07/28 Python
通过python3实现投票功能代码实例
2019/09/26 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
Python加速程序运行的方法
2020/07/29 Python
实例讲解使用CSS实现多边框和透明边框的方法
2015/09/08 HTML / CSS
使用分层画布来优化HTML5渲染的教程
2015/05/08 HTML / CSS
支票、地址标签、包装纸和慰问卡:Current Catalog
2018/01/30 全球购物
施华洛世奇新加坡官网:SWAROVSKI新加坡
2020/10/06 全球购物
最新计算机专业自荐信
2013/10/16 职场文书
2014年大学生自我评价
2014/01/19 职场文书
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸
Redis实战之Lettuce的使用技巧详解
2022/12/24 Redis