如何删除输出之间的额外空格?

时间:2015-07-18 00:02:39

标签: python python-3.x

这是第一个按顺序打印输出的代码:

 import csv
 import random
 import os.path


 def filename ():

     filename = 'filename.txt'
     with open ("filename.txt", "r") as data_file:

        for line in data_file.readlines():
           line = line.strip().split()
           print (line [0], line [1], line[2])

这是输出:

 1  63075384    0.781952678
 1  212549126   0.050216027
 2  35003118    0.027205438
 2  230357107   0.065453827
 3  77023025    0.098224352
 3  225622058   0.785312636

然后我想随机化我的输出。所以这是我做的第二个代码:

 import random
 with open('filename.txt') as fin:
    lines = list(fin)

 random.shuffle(lines)
 for line in lines:
    print (line) 

这是输出。这会在每行之间增加一个额外的空格:

2   35003118    0.027205438

3   77023025    0.098224352

2   230357107   0.065453827

1   212549126   0.050216027

3   225622058   0.785312636

1   63075384    0.781952678

我想要的输出是:

2   35003118    0.027205438
3   77023025    0.098224352
2   230357107   0.065453827
1   212549126   0.050216027
3   225622058   0.785312636
1   63075384    0.781952678

如何更改上面显示的第二个代码,以便在没有这些额外空格的情况下打印输出?

我知道这似乎是一个重复的问题,但事实是我在网上搜索过,我似乎无法找到解决这个问题的方法。我很乐意澄清任何事情。谢谢。

2 个答案:

答案 0 :(得分:3)

试试这个:

import random

with open('filename.txt') as fin:
    lines = list(fin)
    random.shuffle(lines)
    for line in lines:
        print(line, end='') 

end=''中设置print()可以避免打印额外的新行。

有关详细信息,请参阅Python docs on print()

答案 1 :(得分:2)

你的行在它们的末尾包含一个换行符,所以在这个循环中:

for line in lines:
    print (line)

它将在line字符串中打印换行符。只需剥离line即可删除换行符:

for line in lines:
    print (line.strip())