该程序运行正常,但是在每个玩家之后我都无法删除空白行。我尝试使用.strip
,但收到错误'list' object has no attribute 'strip'
import random
def random_player(datafile):
with open (datafile, 'r') as read_file:
the_line = read_file.readlines()
print(random.choice(the_line))
random_player(file_name)
random_player(file_name)
random_player(file_name)
random_player(file_name)
random_player(file_name)
我得到的是
Toney Douglas
Adonal Foyle
Nate Hawthorne
Joe Stephens
Gary Payton II
我想要什么:
Toney Douglas
Adonal Foyle
Nate Hawthorne
Joe Stephens
Gary Payton II
答案 0 :(得分:5)
您在read_file
中的行包含换行符,然后print
默认添加另一行。您可以使用print(random.choice(the_line), end='')
避免第二个换行符。
其他评论:
read_file.close
什么也不做,因为您忘记了调用该方法。read_file.close()
也没有意义,因为使用with
语句已经可以关闭文件了。the_line
是一个令人困惑的变量名,因为它有很多行。random_player
时都打开并读取它。答案 1 :(得分:1)
timgeb 的答案是一种解决方法,您也可以尝试在行尾修剪掉换行符。
print(random.choice(the_line).strip('\n'))