当我们要批量读取多个文件所有内容,并把所有行打印出来时,我们可能会这样写代码:
file_list = ['1.txt', '2.txt', '3.txt']for path in file_list: with open(path, encoding='utf-8') as f: for line in f: print(line)
但这样写代码不好看。Python 自带一个更好用的模块:fileinput
。
如果要使用 fileinput
读取列表中的多个文件,那么可以这样写代码:
import fileinputfile_list = ['1.txt', '2.txt', '3.txt']with fileinput.input(files=file_list) as f: for line in f: print(line)
但如果仅仅是这样,那这个模块也并没有省多少事情。我们再来看看它的高级功能。
创建一个 read.py
,其内容如下:
import fileinputwith fileinput.input() as f: for line in f: print(line)
这个代码初看起来,没有读入任何文件,那么它的内容从哪里来呢?
此时我们运行,并尝试输入一些内容回车。如下图所示:
可以看出,它会自动把你输入的内容打印出来,相当于在 whileTrue
里面加上了 input
。
不仅如此,这段代码不做任何修改,我们在 read.py
同目录下创建3个文件 1.txt
2.txt
3.txt
。然后使用如下命令运行:
python3 read.py 1.txt 2.txt 3.txt
运行效果如下图所示:
自动把参数对应的文件都读入并打印了出来。这里的参数可以有任意多个。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有