在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实现partial改变方法默认参数
Aug 18 Python
Python中的深拷贝和浅拷贝详解
Jun 03 Python
Python正则表达式教程之一:基础篇
Mar 02 Python
python爬取亚马逊书籍信息代码分享
Dec 09 Python
完美解决安装完tensorflow后pip无法使用的问题
Jun 11 Python
Python 使用类写装饰器的小技巧
Sep 30 Python
selenium+python自动化测试环境搭建步骤
Jun 03 Python
python设置环境变量的作用和实例
Jul 09 Python
Pandas之groupby( )用法笔记小结
Jul 23 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
Jul 20 Python
flask开启多线程的具体方法
Aug 02 Python
python安装sklearn模块的方法详解
Nov 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
各种咖啡的英文名子是什么
2021/03/03 新手入门
《PHP编程最快明白》第八讲:php启发和小结
2010/11/01 PHP
zen_cart实现支付前生成订单的方法
2016/05/06 PHP
filemanage功能中用到的common.js
2007/04/08 Javascript
jQuery滚动加载图片效果的实现
2013/03/06 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
setTimeout自动触发一个js的方法
2014/01/15 Javascript
js限制文本框的输入内容代码分享(3类)
2015/08/20 Javascript
js实现无限级树形导航列表效果代码
2015/09/23 Javascript
jQuery拖动元素并对元素进行重新排序
2015/12/30 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
Vue实现内部组件轮播切换效果的示例代码
2018/04/07 Javascript
Vue多系统切换实现方案
2018/06/05 Javascript
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
Python3中的json模块使用详解
2018/05/05 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
用Python制作mini翻译器的实现示例
2020/08/17 Python
利用 CSS3 实现的无缝轮播功能代码
2017/09/25 HTML / CSS
html5 canvas fillRect坐标和大小的问题解决方法
2014/03/26 HTML / CSS
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
基于HTML5+CSS3实现简单的时钟效果
2017/09/11 HTML / CSS
一套Java笔试题
2016/08/20 面试题
个人自我鉴定
2013/11/07 职场文书
计算机专业推荐信范文
2013/11/27 职场文书
园林施工员岗位职责
2013/12/11 职场文书
拾金不昧的表扬信
2014/01/16 职场文书
1亿有多大教学反思
2014/05/01 职场文书
房地产资料员岗位职责
2014/07/02 职场文书
公司慰问信范文
2015/03/23 职场文书
python 调用js的四种方式
2021/04/11 Python
python 如何执行控制台命令与操作剪切板
2021/05/20 Python
sql注入教程之类型以及提交注入
2021/08/02 MySQL
Oracle表空间与权限的深入讲解
2021/11/17 Oracle