Python基础——使用with结构打开多个文件
2017-11-08 17:02
441 查看
考虑如下的案例:
同时打开三个文件,文件行数一样,要求实现每个文件依次读取一行,然后输出,我们先来看比较容易想到的写法:
注意这里只能对单个文件进行for循环读取,不能写成:
但可使用强大的zip操作:
这样层层的嵌套未免啰嗦,with结构支持一种更简洁的写法:
或者使用更为优雅的写法,此时需要contextlib语法糖:
同时打开三个文件,文件行数一样,要求实现每个文件依次读取一行,然后输出,我们先来看比较容易想到的写法:
with open(filename1, 'rb') as fp1: with open(filename2, 'rb') as fp2: with open(filename3, 'rb') as fp3: for i in fp1: j = fp2.readline() k = fp3.readline() print(i, j, k)
注意这里只能对单个文件进行for循环读取,不能写成:
for i, j, k in fp1, fp2, fp3: print(i, j, k)
但可使用强大的zip操作:
for i, j, k in zip(fp1, fp2, fp3): print(i, j, k)
这样层层的嵌套未免啰嗦,with结构支持一种更简洁的写法:
with open(filename1, 'rb') as fp1, open(filename2, 'rb') as fp2, open(filename3, 'rb') as fp3: for i in fp1: j = fp2.readline() k = fp3.readline() print(i, j, k)
或者使用更为优雅的写法,此时需要contextlib语法糖:
from contextlib improt ExitStack with ExitStack() as stack: files = [stack.enter_context(open(fname)) for fname in [filename1, filename2, filename3]] for i, j, k in zip(files[0], files[1], files[2]): print(i, j, k)
相关文章推荐
- Python基础——使用with结构打开多个文件
- python中使用with打开文件
- python基础-打开模式、seek、修改文件、with上下文管理、truncate
- [问答]Python 打开多个文件怎么使用 "with open"
- python文件基础(4)--使用with语句
- Python中使用with语句同时打开多个文件
- Python中使用With打开多个文件
- python基础:os模块中关于文件/目录常用的函数使用方法
- python使用wxPython打开并播放wav文件的方法
- C/C++/Python等 使用二进制模式打开文件与不使用二进制模式的区别
- Python--使用json.dumps 将 json 格式的数据写到文件里--with open as f
- python中with open as结构最好不要嵌套使用
- 使用文件进行优化 分类: python 小练习 divide into python python基础学习 2014-01-01 14:13 228人阅读 评论(0) 收藏
- Python基础——文件拷贝(从手动实现到shutil的使用)
- 控制台下面使用 OPENFILENAME结构 打开文件
- 使用with...as....语法打开一个文件
- Python open()函数文件打开、读、写基础操作
- Java基础之IO流,使用File类以树形结构打印指定文件目录
- Python使用XPATH解析特定结构XML文件速度提升方法
- python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)