在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脚本
Apr 05 Python
Python使用xlrd模块操作Excel数据导入的方法
May 26 Python
基于Python的关键字监控及告警
Jul 06 Python
Pycharm设置界面全黑的方法
May 23 Python
在scrapy中使用phantomJS实现异步爬取的方法
Dec 17 Python
在python shell中运行python文件的实现
Dec 21 Python
Django如何实现防止XSS攻击
Oct 13 Python
python 多进程和协程配合使用写入数据
Oct 30 Python
python爬虫筛选工作实例讲解
Nov 23 Python
Python基于Opencv识别两张相似图片
Apr 25 Python
Django程序的优化技巧
Apr 29 Python
对象析构函数__del__在Python中何时使用
Mar 22 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获取参数的几种方法总结
2014/02/18 PHP
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
2011/07/10 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
Validform表单验证总结篇
2016/10/31 Javascript
node.js学习笔记之koa框架和简单爬虫练习
2018/12/13 Javascript
vue.js实现的幻灯片功能示例
2019/01/18 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
2019/04/04 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
用python实现批量重命名文件的代码
2012/05/25 Python
一篇文章入门Python生态系统(Python新手入门指导)
2015/12/11 Python
详解python的数字类型变量与其方法
2016/11/20 Python
python中计算一个列表中连续相同的元素个数方法
2018/06/29 Python
利用python画出折线图
2018/07/26 Python
对python Tkinter Text的用法详解
2018/10/11 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
Python 3.6 -win64环境安装PIL模块的教程
2019/06/20 Python
Python 脚本实现淘宝准点秒杀功能
2019/11/13 Python
python 利用turtle模块画出没有角的方格
2019/11/23 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
pyinstaller将含有多个py文件的python程序做成exe
2020/04/29 Python
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
美体小铺瑞典官方网站:The Body Shop瑞典
2018/01/27 全球购物
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
高校教师岗位职责
2014/03/18 职场文书
表彰大会主持词
2014/03/26 职场文书
高中家长寄语
2014/04/02 职场文书
护理培训心得体会
2016/01/22 职场文书
python读取mat文件生成h5文件的实现
2022/07/15 Python