在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 18 Python
selenium+python 对输入框的输入处理方法
Oct 11 Python
从0开始的Python学习014面向对象编程(推荐)
Apr 02 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
Jun 13 Python
浅析Windows 嵌入python解释器的过程
Jul 26 Python
vscode 配置 python3开发环境的方法
Sep 19 Python
python TK库简单应用(实时显示子进程输出)
Oct 29 Python
使用npy转image图像并保存的实例
Jul 01 Python
Python实现手势识别
Oct 21 Python
Python在线和离线安装第三方库的方法
Oct 31 Python
Python合并多张图片成PDF
Jun 09 Python
python playwright 自动等待和断言详解
Nov 27 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的知识
2006/11/17 PHP
main.php
2006/12/09 PHP
简单的php写入数据库类代码分享
2011/07/26 PHP
hadoop中一些常用的命令介绍
2013/06/19 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
2019/05/06 PHP
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
js判断浏览器类型及设备(移动页面开发)
2015/07/30 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
Node.js中的http请求客户端示例(request client)
2017/05/04 Javascript
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
如何用原生js写一个弹窗消息提醒插件
2019/05/24 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
2020/07/13 Javascript
jQuery实现全选按钮
2021/01/01 jQuery
vue3中轻松实现switch功能组件的全过程
2021/01/07 Vue.js
python中关于日期时间处理的问答集锦
2013/03/08 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
2019/01/22 Python
python基于socket进行端口转发实现后门隐藏的示例
2019/07/25 Python
opencv调整图像亮度对比度的示例代码
2019/09/27 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
2019/10/30 Python
新手学python应该下哪个版本
2020/06/11 Python
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
expedia比利时:预订航班+酒店并省钱
2018/07/13 全球购物
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
为什么Runtime.exec(“ls”)没有任何输出?
2014/10/03 面试题
绿化工程实施方案
2014/03/17 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
大学生党员个人对照检查材料范文
2014/09/25 职场文书
2016年圣诞节活动总结范文
2016/04/01 职场文书
oracle数据库去除重复数据
2022/05/20 Oracle