我的任务是从一个txt文件中获取一些棒球队统计数据,查找赢得的比赛百分比,并将其输出到单独的文件中。
我的代码如下
infile = open("ALE.txt", "r")
outfile = open("ALE_sorted.txt", "w")
for line in infile:
data = line.split(',')
wins = eval(data[2])
percentage = 162 / wins
outfile.write(str(data[0]) + ", " + data[1] + ", " + data[2] + ", " +
str(round(percentage, 3)) + "\n")
infile.close()
outfile.close()
初始txt文件的格式如下(团队,胜利,损失):
巴尔的摩,93,69
波士顿,69,93
纽约,95,67
坦帕湾,90,72
多伦多,73,89
虽然我的代码正确地计算了赢得的游戏的百分比,但它创建了一条线,我无法找出原因,看起来完全像这样:
巴尔的摩,93,69
,2.348
波士顿,69,93
,1.742
纽约,95,67
,2.418
坦帕湾,90,72
,2.25
多伦多,73,89,1.82
它应该只有5行,而不是每次都在第三个逗号之前创建一个新行。我试过删除“\ n”但无济于事。有什么提示吗?
答案 0 :(得分:4)
尝试更改:
data = line.split(',')
为:
data = line.strip().split(',')
答案 1 :(得分:1)
"线"被定义为"以行终止符"结尾的字符串。因此,在您阅读第一行后,line
包含"Baltimore,93,69\n"
。拆分后,data
为["Baltimore", "93", "69\n"]
。打印出data[2]
时,会出现换行符 - 因为您从未将其删除。
使用data = line.rstrip('\n').split(',')
将其删除。 rstrip
从字符串末尾删除指定的字符。 .rstrip()
也可以工作,但它会删除任何空格(例如尾随空格)。
答案 2 :(得分:0)
您的data[2]
包含换行符。把它剥掉吧。