Python 为什么我的代码要换行

Python 为什么我的代码要换行,python,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(st

我的任务是从一个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”,但无效。有什么建议吗?

尝试更改:

data = line.split(',')
致:

尝试更改:

data = line.split(',')
致:

“行”定义为“以行结束符结尾的字符串”。因此,在阅读第一行之后,
包含
“巴尔的摩,93,69\n”
。拆分后,
数据
[“巴尔的摩”、“93”、“69\n”]
。当你打印出
数据[2]
时,会出现一个换行符——因为你从未删除过它

使用
data=line.rstrip('\n').split(',')
将其删除
rstrip
从字符串末尾删除指定字符
.rstrip()
也可以,但它会删除任何空格(如尾随空格)。

将“行”定义为“以行终止符结尾的字符串”。因此,在阅读第一行之后,
包含
“巴尔的摩,93,69\n”
。拆分后,
数据
[“巴尔的摩”、“93”、“69\n”]
。当你打印出
数据[2]
时,会出现一个换行符——因为你从未删除过它


使用
data=line.rstrip('\n').split(',')
将其删除
rstrip
从字符串末尾删除指定字符
.rstrip()
也可以工作,但它会删除任何空格(如尾随空格)。

您的
数据[2]
包含一个换行符。你的
数据[2]
包含一个换行符。只需将其剥离。

因为
数据[2]
中有一个
\n
,所以您可以尝试
数据[2]。剥离()
“**由于下面的兄弟解决了”-您不需要编辑您的问题来说明问题已经解决。取而代之的是,点击旁边的绿色轮廓复选标记,选择一个你认为最好的答案;这将告诉堆栈溢出这是一个已回答的问题。我已回滚您的编辑。在正文或标题中说已解决是不恰当的。如果您收到的答案解决了问题,那么表明问题解决的方法是通过单击答案分数下方的复选标记来接受正确的答案。如果您觉得合适,您也可以同时向上投票该帖子。因为
数据[2]
中有一个
\n
,所以您可以尝试
数据[2]。strip()
“**由于下面的兄弟解决了”-您不需要编辑您的问题来说明问题已经解决。取而代之的是,点击旁边的绿色轮廓复选标记,选择一个你认为最好的答案;这将告诉堆栈溢出这是一个已回答的问题。我已回滚您的编辑。在正文或标题中说已解决是不恰当的。如果您收到的答案解决了问题,那么表明问题解决的方法是通过单击答案分数下方的复选标记来接受正确的答案。如果你觉得合适的话,你也可以在同一时间投票支持这篇文章。