在python中使用with打开多个文件的方法


Posted in Python onJanuary 07, 2019

虽然初恋是java, 可是最近是越来越喜欢python, 所以决定追根溯源好好了解下python的原理,架构等等.小脑袋瓜不太好使,只能记录下慢慢进步吧

使用with打开文件的好处不多说,这里记录一下如果要打开多个文件,该怎么书写简捷的代码。

场景是同时打开三个文件,文件行数一样,程序实现每个文件依次读取一行,同时输出。 首先来一种比较容易想到的写法,如下一样嵌套:

with open('file1') as f1:
 with open('file2') as f2:
  with open('file3') as f3:
   for i in f1:
    j = f2.readline()
    k = f3.readline()
    print(i,j,k)

注意,这里只能对一个文件进行for循环读取,不能写成:

for i,j,k in f1,f2,f3:
 print(i,j,k)

这么多层缩进太恶心了,还是来一种简洁些的写法:

with open('file1') as f1, open('file2') as f2, open('file3') as f3:
 for i in f1:
  j = f2.readline()
  k = f3.readline()
  print(i,j,k)

还有一种优雅一点的写法:

from contextlib import nested #这个包是python2中的,不使用python3
with nested(open('file1'), open('file2'), open('file3')) as (f1,f2,f3):
 for i in f1:
  j = f2.readline()
  k = f3.readline()
  print(i,j,k) 

以上这篇在python中使用with打开多个文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
浅谈Python中的可变对象和不可变对象
Jul 07 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
May 11 Python
django用户登录验证的完整示例代码
Jul 21 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
Aug 05 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
Aug 26 Python
python实现发送form-data数据的方法详解
Sep 27 Python
python3图片文件批量重命名处理
Oct 31 Python
Python安装与卸载流程详细步骤(图解)
Feb 20 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
Feb 28 Python
带你学习Python如何实现回归树模型
Jul 16 Python
python生成xml时规定dtd实例方法
Sep 21 Python
利用Opencv实现图片的油画特效实例
Feb 28 Python
python读取文件名并改名字的实例
Jan 07 #Python
Python 调用 zabbix api的方法示例
Jan 06 #Python
使用Django2快速开发Web项目的详细步骤
Jan 06 #Python
利用Django提供的ModelForm增删改数据的方法
Jan 06 #Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
Jan 05 #Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
Jan 05 #Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
Jan 05 #Python
You might like
PHP关联链接常用代码
2012/11/05 PHP
PHP实现读取一个1G的文件大小
2013/08/24 PHP
一个完整的PHP类包含的七种语法说明
2015/06/04 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
firefox下jquery iframe刷新页面提示会导致重复之前动作
2012/12/17 Javascript
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
javascript中全局对象的isNaN()方法使用介绍
2013/12/19 Javascript
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
vue.js开发环境搭建教程
2017/05/04 Javascript
angular2系列之路由转场动画的示例代码
2017/11/09 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
jQuery实现高级检索功能
2019/05/28 jQuery
JS+Canvas实现五子棋游戏
2020/08/26 Javascript
探究Python中isalnum()方法的使用
2015/05/18 Python
深入浅析Python字符编码
2015/11/12 Python
python数据结构之链表详解
2017/09/12 Python
Python模拟脉冲星伪信号频率实例代码
2018/01/03 Python
Python机器学习之K-Means聚类实现详解
2018/02/22 Python
Python if语句知识点用法总结
2018/06/10 Python
Python3随机漫步生成数据并绘制
2018/08/27 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
2020/11/25 Python
python 爬取百度文库并下载(免费文章限定)
2020/12/04 Python
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
internal修饰符起什么作用
2013/12/16 面试题
电子技术专业中专生的自我评价
2013/12/17 职场文书
商务英语广告词大全
2014/03/18 职场文书
新闻专业毕业生英文求职信
2014/03/19 职场文书
车队司机个人自我鉴定
2014/04/17 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
医德医风自我评价2015
2015/03/03 职场文书
2015年预备党员自我评价
2015/03/04 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL