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



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

可以从命令行提供任意数量的文件

例如,假设我传入了三个文件:披萨.txt、意大利面.txt、饮料.txt


披萨.txt

Margarita 
Pepperoni
Mushroom

意大利面.txt

Spaghetti 
Carbonara 
Lasagna 

饮料.txt

Beer 
Wine 
Soda

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

Margarita   Spaghetti   Beer
Pepperoni   Carbonara   Wine 
Mushroom   Lasagna    Soda

每个项目由制表符 (\t( 分隔


如果文件的长度不匹配,则占位符 (''( 应为空字符串。

例如,如果披萨中没有"蘑菇".txt文件:

Margarita   Spaghetti   Beer
Pepperoni   Carbonara   Wine 
            Lasagna    Soda

我很感兴趣,您将如何实现此输出?

所以你正在寻找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=''))

最新更新