我正在尝试在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=''))