什麼我做的是,我有一個包含一些數據如下文件:解析和Python中的文件的添加內容
ben | 2 | 40
germany | 6 | 60
我需要什麼樣的輸出是::
ben | 2 | 40
germany | 6 | 60
field 1 = 8
field 2 = 100
請給我一些解決方案,以在Python中繼續前進。
什麼我做的是,我有一個包含一些數據如下文件:解析和Python中的文件的添加內容
ben | 2 | 40
germany | 6 | 60
我需要什麼樣的輸出是::
ben | 2 | 40
germany | 6 | 60
field 1 = 8
field 2 = 100
請給我一些解決方案,以在Python中繼續前進。
可能有一個更優雅的方式來做到這一點...
results = [0, 0]
with open("\path\to\file.txt") as f:
for line in f:
values = line.split("|")
results[0] += int(values[1])
results[1] += int(values[2])
print("field 1 = " + str(results[0]), "field 2 = " + str(results[1]))
這有一個家庭作業給我的香氣,所以我要去嘗試堅持爲客戶提供一些指引,而不是徹底的解決方案。
您可以使用Python的open()
函數來打開文件。得到的對象可以循環迭代,如for line in myfile:
。當你完成這個文件時,你應該調用myfile.close()
,你可以用「追加」模式重新打開它,在最後寫出答案。
每一行都將是一個字符串,您可以撥打line.split('|')
將行分成塊。我喜歡使用多個作業:name, col1, col2 = line.split('|')
。您可能需要使用int()
將字符串格式的數字強制轉換爲整數格式,以便您可以將它們相加。
我認爲這可能是一個非常可靠的開始,對吧?
我已經完成了上面提出的建議,只是需要如何到達該領域然後我使用sum()來獲得我的輸出。但是我知道我有答案。所以會照顧它並且知道我的錯誤。 – vivs
http://docs.python.org/library/csv.html –
你有沒有寫過任何代碼來讀取文件並打印它 - 給出你想要的輸出的前兩行?如果是這樣,請發佈該代碼。如果不是,請查看Python文檔,例如http://docs.python.org/py3k/tutorial/inputoutput.html。之後,請閱讀http://docs.python.org/py3k/library/stdtypes.html?highlight=split#str.split – Dave