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()
。