Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何删除输出之间的额外空格?_Python_Python 3.x - Fatal编程技术网

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

Python 如何删除输出之间的额外空格?,python,python-3.x,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()

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

 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
如何更改上面显示的第二个代码,以便在没有额外空格的情况下打印输出


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

您的行末尾包含一个换行符,因此在此循环中:

for line in lines:
    print (line)
它将在
字符串中打印换行符。只需剥离
即可删除换行符:

for line in lines:
    print (line.strip())
试试这个:

import random

with open('filename.txt') as fin:
    lines = list(fin)
    random.shuffle(lines)
    for line in lines:
        print(line, end='') 
print()
中设置
end=''
可以避免打印额外的新行


有关详细信息,请参阅。

帮助说明:打印换行符的原因是
'\n'
end
的默认值。您的第一个脚本使用
trim()
,这将删除输入行末尾的换行符。您没有在第二个程序中执行此操作,因此它会打印该新行,然后
print()
添加自己的新行。@Barmar它使用
strip()