在Python中将行写入文件的列中

0 投票
2 回答
1297 浏览
提问于 2025-04-17 15:49

我有一些句子,它们是以字符串的形式存在,像这样:

第一句

            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

假设你有两个包含多行内容的列表,分别叫做 lines1lines2。如果你有一个包含多行的字符串,可以通过调用 .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                 

撰写回答