在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创建xml的方法
Mar 10 Python
python简单实现旋转图片的方法
May 30 Python
在Python的Django框架中显示对象子集的方法
Jul 21 Python
python 文件操作api(文件操作函数)
Aug 28 Python
Python实现Linux的find命令实例分享
Jun 04 Python
python如何派生内置不可变类型并修改实例化行为
Mar 21 Python
numpy返回array中元素的index方法
Jun 27 Python
python安装twisted的问题解析
Aug 21 Python
Python对象与引用的介绍
Jan 24 Python
利用pyuic5将ui文件转换为py文件的方法
Jun 19 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
Aug 05 Python
python中p-value的实现方式
Dec 16 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 破解防盗链图片函数
2008/12/09 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
2009/08/05 PHP
PHP中使用imagick生成PSD文件缩略图教程
2015/01/26 PHP
教你php如何实现验证码
2016/01/20 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
js实现的切换面板实例代码
2013/06/17 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
javascript中this的四种用法
2015/05/11 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
AngularJS在IE8的不支持的解决方法
2016/05/13 Javascript
jquery.validate使用详解
2016/06/02 Javascript
使用Bootstrap + Vue.js实现添加删除数据示例
2017/02/27 Javascript
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
python实现定时同步本机与北京时间的方法
2015/03/24 Python
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
Python编写简单的HTML页面合并脚本
2016/07/11 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
Python 3 实现定义跨模块的全局变量和使用教程
2019/07/07 Python
Python SELENIUM上传文件或图片实现过程
2019/10/28 Python
兰蔻法国官方网站:Lancôme法国
2020/02/22 全球购物
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
请介绍一下WSDL的文档结构
2013/03/17 面试题
春节联欢晚会主持词范文
2014/03/24 职场文书
安全责任书范本
2014/04/15 职场文书
领导干部查摆“四风”问题自我剖析材料思想汇报
2014/10/05 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
先进工作者推荐材料
2014/12/23 职场文书
Vue的生命周期一起来看看
2022/02/24 Vue.js