在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下如何让web元素的生成更简单的分析
Jul 17 Python
python实现目录树生成示例
Mar 28 Python
Python最基本的数据类型以及对元组的介绍
Apr 14 Python
python Django模板的使用方法
Jan 14 Python
深入学习python的yield和generator
Mar 10 Python
详解Python核心编程中的浅拷贝与深拷贝
Jan 07 Python
Python中的二维数组实例(list与numpy.array)
Apr 13 Python
通过pykafka接收Kafka消息队列的方法
Dec 27 Python
使用pytorch和torchtext进行文本分类的实例
Jan 08 Python
tensorflow模型保存、加载之变量重命名实例
Jan 21 Python
Python 统计位数为偶数的数字代码详解
Mar 15 Python
python OpenCV学习笔记
Mar 31 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中的string类型使用说明
2010/07/27 PHP
PHP5.5在windows安装使用memcached服务端的方法
2014/04/16 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
php中的ini配置原理详解
2014/10/14 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
学习ExtJS Window常用方法
2009/10/07 Javascript
jQuery :nth-child前有无空格的区别分析
2011/07/11 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
jQuery学习笔记之jQuery动画效果
2013/09/09 Javascript
自定义刻度jQuery进度条及插件
2015/09/02 Javascript
thinkphp实现无限分类(使用递归)
2015/12/19 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
2016/11/07 Javascript
记一次vue去除#问题处理经过小结
2019/01/24 Javascript
微信小程序实现批量倒计时功能
2020/11/01 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
Python多线程爬虫简单示例
2016/03/04 Python
Python处理JSON数据并生成条形图
2016/08/05 Python
python3+mysql查询数据并通过邮件群发excel附件
2018/02/24 Python
Django中的ajax请求
2018/10/19 Python
python七夕浪漫表白源码
2019/04/05 Python
python的pytest框架之命令行参数详解(下)
2019/06/27 Python
Django REST framework内置路由用法
2019/07/26 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
Python while true实现爬虫定时任务
2020/06/08 Python
django下创建多个app并设置urls方法
2020/08/02 Python
python 实现逻辑回归
2020/12/30 Python
基础的CSS3弹性盒Flexbox布局使用实例
2016/04/08 HTML / CSS
HTML5微信播放全屏问题的解决方法
2017/03/09 HTML / CSS
Vero Moda西班牙官方购物网站:丹麦BESTSELLER旗下知名女装品牌
2018/04/27 全球购物
Hunkemöller西班牙:欧洲最大的内衣连锁店
2018/08/15 全球购物
哈利波特商店:Harry Potter Shop
2018/11/30 全球购物
学校消防安全制度
2014/01/30 职场文书
理发店策划方案
2014/06/05 职场文书