为什么我的代码会换行

时间:2017-10-23 01:13:42

标签: python

我的任务是从一个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”但无济于事。有什么提示吗?

3 个答案:

答案 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]包含换行符。把它剥掉吧。