在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模拟登陆Tom邮箱示例分享
Jan 13 Python
github配置使用指南
Nov 18 Python
Django入门使用示例
Dec 12 Python
python 读取文件并替换字段的实例
Jul 12 Python
Python格式化输出字符串方法小结【%与format】
Oct 29 Python
selenium+python环境配置教程详解
May 28 Python
pyqt 实现为长内容添加滑轮 scrollArea
Jun 19 Python
python3调用windows dos命令的例子
Aug 14 Python
python设置环境变量的作用整理
Feb 17 Python
详解python metaclass(元类)
Aug 13 Python
Python实现AES加密,解密的两种方法
Oct 03 Python
Python opencv缺陷检测的实现及问题解决
Apr 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
Phpbean路由转发的php代码
2008/01/10 PHP
javascript 小型动画组件与实现代码
2010/06/02 PHP
一致性哈希算法以及其PHP实现详细解析
2013/08/24 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
PHP5.5迭代生成器用法实例详解
2016/03/16 PHP
javascript AutoScroller 函数类
2009/05/29 Javascript
JavaScript 原型链学习总结
2010/10/29 Javascript
js新闻滚动 js如何实现新闻滚动效果
2013/01/07 Javascript
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
JS遍历DOM文档树的方法实例详解
2018/04/03 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
Python利用带权重随机数解决抽奖和游戏爆装备问题
2016/06/16 Python
Python 稀疏矩阵-sparse 存储和转换
2017/05/27 Python
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
python 计算一个字符串中所有数字的和实例
2019/06/11 Python
Python代码太长换行的实现
2019/07/05 Python
对python中基于tcp协议的通信(数据传输)实例讲解
2019/07/22 Python
Pytorch Tensor基本数学运算详解
2019/12/30 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
2020/03/23 Python
python利用递归方法实现求集合的幂集
2020/09/07 Python
Schecker荷兰:狗狗用品和配件
2019/06/06 全球购物
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
运动会广播稿300字
2014/01/10 职场文书
军训考核自我鉴定
2014/02/13 职场文书
企业2014年度工作总结
2014/12/10 职场文书
初中军训感言
2015/08/01 职场文书
先进基层党组织主要事迹材料
2015/11/03 职场文书
2016年基层党组织公开承诺书
2016/03/25 职场文书