在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函数缺省值与引用学习笔记分享
Feb 10 Python
python创建一个最简单http webserver服务器的方法
May 08 Python
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
Apr 27 Python
Python单例模式实例详解
Mar 01 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
Apr 11 Python
Python解决pip install时出现的Could not fetch URL问题
Aug 01 Python
python安装scipy的步骤解析
Sep 28 Python
python实现12306登录并保存cookie的方法示例
Dec 17 Python
python3 常见解密加密算法实例分析【base64、MD5等】
Dec 19 Python
python实时监控logstash日志代码
Apr 27 Python
浅谈keras中loss与val_loss的关系
Jun 22 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Jun 11 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 cli 方式 在crotab中运行解决
2010/02/08 PHP
PHP OPCode缓存 APC详细介绍
2010/10/12 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
PHP isset()及empty()用法区别详解
2020/08/29 PHP
jQuery学习2 选择器的使用说明
2010/02/07 Javascript
使用JQuery和CSS模拟超链接的用户单击事件的实现代码
2012/05/23 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
浅谈node.js中async异步编程
2015/10/22 Javascript
jquery实现ajax加载超时提示的方法
2016/07/23 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
vue.js树形组件之删除双击增加分支实例代码
2017/02/28 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
JavaScript的一些小技巧分享
2021/01/06 Javascript
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
[49:29]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
python爬虫容易学吗
2020/06/02 Python
Python基于staticmethod装饰器标示静态方法
2020/10/17 Python
浅析Python打包时包含静态文件处理方法
2021/01/15 Python
css3实现针线缝合效果(图解步骤)
2013/02/04 HTML / CSS
纯CSS实现菜单、导航栏的3D翻转动画效果
2014/04/23 HTML / CSS
css3实现平移效果(transfrom:translate)的示例
2020/11/13 HTML / CSS
HTML5实现的震撼3D焦点图动画的示例代码
2019/09/26 HTML / CSS
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
语文教育专业应届生求职信
2013/11/23 职场文书
物流仓储计划书
2014/01/10 职场文书
文明家庭先进事迹材
2014/01/27 职场文书
办公室主任职责范本
2014/03/07 职场文书
代理协议书范本
2014/04/22 职场文书
旅游节目策划方案
2014/05/26 职场文书
新文化运动的口号
2014/06/21 职场文书
2014医学院领导干部四风对照检查材料思想汇报
2014/09/16 职场文书
Python加密与解密模块hashlib与hmac
2022/06/05 Python