2016-10-15 89 views
-1

我遇到了一個問題,我試圖做。我的目標是導入一個包含足球隊名稱的文件,然後輸入勝負數,然後如果一個球隊的平均數大於.500,那麼我必須寫出該球隊的名稱,並將其平均爲一個新文件。然後我必須將.500以下的團隊編寫成單獨的文件。到目前爲止,我有我的代碼,以便它讀取文件的每一行,但我無法弄清楚如何分析每行代碼。我真的只是在尋找任何建議,我可以在這一點上,這將不勝感激。我需要從一個文件中解析一些文本和整數

scores = open("fbscores.txt",'r') 
eachline = scores.readline() 
while eachline != "": 
    print(eachline) 
    eachline = scores.readline() 
scores.close() 
+1

獲得幫助的最佳方式是發佈一些你想分析的文件的行 –

+0

文件中的行是如何用空格分隔的?逗號?別的東西?你可能想看看字符串的拆分方法。另外,在讀取/寫入文件時,最佳做法是將它們封裝在「with」關鍵字[doc](https://docs.python.org/2/tutorial/inputoutput.html)中。就個人而言,我還會使用for循環遍歷lines.readlines():「中的行」。 –

+0

看起來你在編碼工作上有很多好處。我的建議是開始。 – TigerhawkT3

回答

0

鑑於該文件的一個示例行是這樣的:

Cowboys 4 1 

然後一些代碼可能是這樣的:

line = scores.readline().split() 
teamName = line[0] 
wins = int(line[1]) 
losses = int(line[2]) 

if wins > losses: 
    print(teamName + "'s record is over .500!") 
    goodTeams.write(line) 
    goodTeams.write() #make a new line 
else: 
    print(teamName + "'s record is <= .500.") 
    badTeams.write(line) 
    badTeams.write() 

要找到一個團隊的平均用X勝y損失,請執行以下操作:

"%0.3f" % (x/(x+y)) 

給s:

>>> "%0.3f" % (4/(4+1)) 
'0.800' 
>>> 
+0

嘿謝謝!這真的很有幫助 – Hirschzd01

+0

如果你發現一個有用的答案,請以upvote的形式提供反饋。 – cs01

0

您可以使用高級庫來完成此操作,如pandas

它有許多你想要的功能!

import pandas as pd 
df = pd.read_csv('file.csv') 
print(df) 
0

如果您從輸入中張貼一些行,這真的很有幫助。 根據你的描述,我假設在你輸入的每一行都具有以下佈局:

[NAME] X Y 

其中,NAME是球隊的名字,X是勝Y的數量,數量丟失。 你可以簡單地拆分任何分隔符行(在這個例子中案「空間」),

eachline = eachline.split() 

如果有一個逗號分隔符,然後你做eachline = eachline.split(',')等等,你的想法。

然後eachline將存儲結構如下['NAME', X, Y] 列表然後你就可以訪問XY他們使用,以平均:分別eachline[0]eachline[1]

+1

好的,謝謝你幫我出了一噸!謝謝! – Hirschzd01

相關問題