专栏首页未闻Code如何使用 Python批量读取多个文件

如何使用 Python批量读取多个文件

当我们要批量读取多个文件所有内容,并把所有行打印出来时,我们可能会这样写代码:

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

运行效果如下图所示:

自动把参数对应的文件都读入并打印了出来。这里的参数可以有任意多个。

本文分享自微信公众号 - 未闻Code(itskingname),作者:kingname

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【一日一技】揭秘字符串的两副“面孔”

    现在,当你在命令行交互环境直接输入变量名再回车的时候,你看到的是'test',当你输入print(a)的时候,你看到的却是test。

    青南
  • 一日一技:为 git commit 设置默认模板

    当大量的提交都写着“update”的时候,你根本没法快速知道每个提交改的是什么内容——是修复了什么bug?是增强了什么功能?等时间久了,需要找以前的某一个提交检...

    青南
  • 一日一技:批量转义正则表达式中的特殊符号

    这些聊天记录总是以表情符号开头,以 好玩结尾。为了屏蔽这些诈骗信息,我们想到使用正则表达式。

    青南
  • Python中os.listdir的排序问题

    上周应别人要求,使用python批量修改文件名称。 文件名有规律,当时就用了一个函数直接精确的用文件名替换了。后来想直接可以用listdir来遍历每个文件来修...

    于小勇
  • 对比文件内容

    苦咖啡
  • 6千万词汇的巨型汉语词库

    关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 算法+语料≈NLP 这是一个六千万词...

    昱良
  • linux学习第二十三篇:shell介绍,命令历史,命令补全和别名,通配符,输入输出重定向

    shell介绍 什么是shell, shell是一个命令解释器,提供用户和机器之间的交互。支持特定语法,比如逻辑判断、循环。每个用户都可以有自己特定的shel...

    用户1215343
  • 命令行通配符教程

    一次性操作多个文件时,命令行提供通配符(wildcards),用一种很短的文本模式(通常只有一个字符),简洁地代表一组路径。

    ruanyf
  • 如何查找软链接的最终目标文件

    一般我们查看软链接的目标文件都是用 ls -l 这种形式,但它只能查看该软链接的当前目标,如果该目标又是一个软链接的话,该命令并不会递归查找,最终输出真实的目标...

    wangyuntao
  • Dataset和DataLoader

    Pytorch通常使用Dataset和DataLoader这两个工具类来构建数据管道。

    lyhue1991

扫码关注云+社区

领取腾讯云代金券