在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版的文曲星猜数字游戏代码
Sep 02 Python
python实现获取Ip归属地等信息
Aug 27 Python
python操作excel的方法
Aug 16 Python
Python 多维List创建的问题小结
Jan 18 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
Jul 04 Python
Mac安装python3的方法步骤
Aug 09 Python
python中for循环变量作用域及用法详解
Nov 05 Python
python sorted方法和列表使用解析
Nov 18 Python
Python PyQt5整理介绍
Apr 01 Python
python实现批处理文件
Jul 28 Python
Django扫码抽奖平台的配置过程详解
Jan 14 Python
PyQt 如何创建自定义QWidget
Mar 24 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 strtok()函数的优点分析
2010/03/02 PHP
php ss7.5的数据调用 (笔记)
2010/03/08 PHP
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
JS 判断代码全收集
2009/04/28 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
jquery应该如何来设置改变按钮input的onclick事件
2012/12/10 Javascript
JQuery动画animate的stop方法使用详解
2014/05/09 Javascript
JavaScript对数组进行随机重排的方法
2015/07/22 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
NodeJs读取JSON文件格式化时的注意事项
2016/09/25 NodeJs
JavaScript字符串对象(string)基本用法示例
2017/01/18 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
Vue Element校验validate的实例
2020/09/21 Javascript
[45:25]完美世界DOTA2联赛循环赛 PXG vs IO 第一场 11.06
2020/11/09 DOTA
python编写的最短路径算法
2015/03/25 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
python学生信息管理系统
2018/03/13 Python
对numpy中数组元素的统一赋值实例
2018/04/04 Python
Python基础之循环语句用法示例【for、while循环】
2019/03/23 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
Python计算IV值的示例讲解
2020/02/28 Python
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
Mytheresa英国官网:拥有160多个奢侈品品牌
2016/10/09 全球购物
StubHub德国:购买和出售门票
2017/09/06 全球购物
Steiff台湾官网:德国金耳釦泰迪熊
2019/12/26 全球购物
大学生评语大全
2014/04/18 职场文书
小学优秀辅导员事迹材料
2014/05/11 职场文书
个人房屋转让协议书范本
2014/10/26 职场文书
邀请函格式范文
2015/02/02 职场文书
社区植树节活动总结
2015/02/06 职场文书