加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

交错文本文件内容的最Pythonic方式是什么?

发布时间:2020-12-20 12:28:04 所属栏目:Python 来源:网络整理
导读:Python问题: 如果我有一个文件列表,如何从每个文件打印#1行,然后 第2行等? (我是一个Python新手,显然……) 例: file1:foo1bar1file2:foo2bar2file3:foo3bar3 功能调用: names = ["file1","file2","file3"]myfct(names) 期望的输出: foo1foo2foo3bar1bar
Python问题:

如果我有一个文件列表,如何从每个文件打印#1行,然后
第2行等? (我是一个Python新手,显然……)

例:

file1:
foo1
bar1

file2:
foo2
bar2

file3:
foo3
bar3

功能调用:

names = ["file1","file2","file3"]
myfct(names)

期望的输出:

foo1
foo2
foo3

bar1
bar2
bar3

这就是我做到的,但我确信有更优雅的Pythonic方式:

def myfct(files):
    file_handlers = []
    for myfile in files:
        file_handlers.append(open(myfile))
    while True:
        done = False
        for handler in file_handlers:
            line = handler.readline()
            eof = len(line) == 0 # wrong
            if (eof):
                done = True
                break
            print(line,end = "")
        print()
        if done == True:
            break

P.S.:我正在使用带有__future__ import print_function的Python 2.6.

解决方法

for lines in itertools.izip(*file_handlers):
  sys.stdout.write(''.join(lines))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读