在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解析文件示例
Jan 23 Python
Python的多态性实例分析
Jul 07 Python
利用Python获取赶集网招聘信息前篇
Apr 18 Python
Django查询数据库的性能优化示例代码
Sep 24 Python
python 读取DICOM头文件的实例
May 07 Python
JavaScript中的模拟事件和自定义事件实例分析
Jul 27 Python
Python实现合并excel表格的方法分析
Apr 13 Python
python实现简易学生信息管理系统
Apr 05 Python
python正则表达式实例代码
Mar 03 Python
Python下使用Trackbar实现绘图板
Oct 27 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
Jan 27 Python
Python IO文件管理的具体使用
Mar 20 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
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
php下intval()和(int)转换使用与区别
2008/07/18 PHP
PHP中全局变量global和$GLOBALS[]的区别分析
2012/08/06 PHP
浅谈PHP封装CURL
2019/03/06 PHP
PHP中md5()函数的用法讲解
2019/03/30 PHP
TFDN图片播放器 不错自动播放
2006/10/03 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
2013/12/09 Javascript
JavaScript中实现继承的三种方式和实例
2015/01/29 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
浅谈JavaScript中的对象及Promise对象的实现
2015/11/15 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
微信小程序scroll-view仿拼多多横向滑动滚动条
2020/04/21 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
javascript canvas实现简易时钟例子
2020/09/05 Javascript
ES6中的Javascript解构的实现
2020/10/30 Javascript
Vue+Bootstrap实现简易学生管理系统
2021/02/09 Vue.js
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
2018/02/26 Python
Python骚操作之动态定义函数
2019/03/26 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
Python 字典一个键对应多个值的方法
2020/09/29 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
大学生自我评价怎样写好
2013/10/23 职场文书
2014年9.18纪念日演讲稿
2014/09/14 职场文书
保研推荐信范文
2015/03/25 职场文书
2016三八妇女节慰问信
2015/11/30 职场文书
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
利用Python第三方库实现预测NBA比赛结果
2021/06/21 Python
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
2021/06/29 Javascript
vue项目如何打包之项目打包优化(让打包的js文件变小)
2022/04/30 Vue.js
python热力图实现的完整实例
2022/06/25 Python