在Python中将行写入文件的列中
我有一些句子,它们是以字符串的形式存在,像这样:
第一句
hund
barked 4.51141770734e-07
bit 0.0673737226603
dog 0.932625826198
第二句
hyi
biid 6.12323423324e-07
bok 0.0643253
dyfs 0.514586321
我想把它们写成文件中的列,像这样:
hund hyi
barked 4.51141770734e-07 biid 6.12323423324e-07
bit 0.0673737226603 bok 0.0643253
dog 0.932625826198 dyfs 0.514586321
而不是像这样:
hund
barked 4.51141770734e-07
bit 0.0673737226603
dog 0.932625826198
hyi
biid 6.12323423324e-07
bok 0.0643253
dyfs 0.514586321
有什么好主意吗?
2 个回答
0
如果你想要进行字符串格式化,可以看看 str.ljust 这个方法,它可以把一个字符串调整到一定的长度。
1
假设你有两个包含多行内容的列表,分别叫做 lines1
和 lines2
。如果你有一个包含多行的字符串,可以通过调用 .split('\n')
来把它变成一个行的列表。
接着,你可以使用字符串格式化的方法,把这些内容排成并排的列:
lines = ['{:<40}{:<40}'.format(s1, s2) for s1, s2 in zip(lines1, lines2)]
举个例子:
a = ''' hund
barked 4.51141770734e-07
bit 0.0673737226603
dog 0.932625826198'''.split('\n')
b = ''' hyi
biid 6.12323423324e-07
bok 0.0643253
dyfs 0.514586321'''.split('\n')
lines = ['{0:<40}{1:<40}'.format(s1, s2) for s1, s2 in zip(a,b)]
print '\n'.join(lines)
输出结果:
hund hyi
barked 4.51141770734e-07 biid 6.12323423324e-07
bit 0.0673737226603 bok 0.0643253
dog 0.932625826198 dyfs 0.514586321