python - 一次从多个文件中读取 1 行

标签 python file io

我有一堆文件名。我需要一次从每个文件中读取一行,进行一些处理,然后再次从每个文件中读取一行,进行一些处理等等。

我正在寻找有关如何以更 Pythonic 的方式执行此操作的建议。我知道每个文件中存在的行数,所以我现在对其进行硬编码,但我不想这样做。

更新: 这些文件都具有相同的行数。

更新 2: 至少有 30 个不同的文件。

filenames = []
line_count = 400
fileobjs = [open(i, 'r') for i in filenames]
for i in xrange(line_count):
    lines = []
    for each_fo in fileobjs:
        for each_line in each_fo:
            lines.append(each_line)
            break
    process(lines)

最佳答案

这个呢?

from itertools import izip_longest
for file_lines in izip_longest(*map(open,filenames)):
    for line in file_lines:
        if line:
            # process line

关于python - 一次从多个文件中读取 1 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29303354/

相关文章:

python - 连接 Python 2.6.1 和 MySQLdb

python - HTTPS GET 请求并读取 JSON 回复

vb.net - 如何列出硬盘中某个文件夹下的所有文件名?

java - 从 InputStream 中删除换行符

写入文件时 Python CGI 脚本权限被拒绝

python - Python 崩溃的输出原因

file - 在 HTML 页面中包含文件中的 JSON-LD 或微数据?

python - 同时逐行读取两个文本文件

java - 如果不关闭流,为什么文件不会被填充?

python - Django 中命名空间模板的优雅方式