这是第一个按顺序打印输出的代码:
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
如何更改上面显示的第二个代码,以便在没有这些额外空格的情况下打印输出?
我知道这似乎是一个重复的问题,但事实是我在网上搜索过,我似乎无法找到解决这个问题的方法。我很乐意澄清任何事情。谢谢。
答案 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())