将多个文本文件拼接在一起

时间:2018-04-20 13:33:02

标签: python python-3.x

我正在尝试在Python 3.0中逐行地将文本文件拼接在一起,从命令行给出。

命令行中可以有任意数量的文件

例如,假设我传递了三个文件:pizza.txt,pasta.txt,drinks.txt

pizza.txt

Margarita 
Pepperoni
Mushroom

pasta.txt

Spaghetti 
Carbonara 
Lasagna 

drinks.txt

Beer 
Wine 
Soda

将我的文件拼接在一起后,在这种情况下,输出应为:

Margarita   Spaghetti   Beer
Pepperoni   Carbonara   Wine 
Mushroom   Lasagna    Soda

每个项目间隔一个标签(\ t)

如果文件的长度匹配,那么空字符串应该是占位符('')。

例如,如果pizza.txt文件中没有“Mushroom”:

Margarita   Spaghetti   Beer
Pepperoni   Carbonara   Wine 
            Lasagna    Soda

我很感兴趣, 你将如何实现这一输出?

1 个答案:

答案 0 :(得分:1)

所以你正在寻找itertools.izip_longest()

import itertools

files = ['pizza', 'pasta', 'drinks']

result = []

for f in files:
    with open('{}.txt'.format(f)) as menu:
        result.append([item.strip() for item in menu])

final = list(itertools.izip_longest(*result, fillvalue=''))