我正在尝试在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
我很感兴趣, 你将如何实现这一输出?
答案 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=''))