2014-04-02 47 views
1

我需要一個打開一個txt文件並在其中添加所有數字的函數。在Python中彙總一個txt文件的數字

我已經嘗試了幾個不同的功能,在線研究後,但迄今沒有工作。

def sum_this(txt): 
    """ 
    >>> sum_digits("numbers.txt") 
    1000 
    """ 
    fileop = open(txt) 
    red = fileop.read() 
    nums = red.split() 
    sums = int(nums) 
    total = sum(sums) 
    return total 

的 「numbers.txt」 載:

500 
200 
150 
150 

數字沒有點他們在不同的線路

這需要使用Python-2.7

什麼需要工作用上面的代碼改變工作?

+0

用'python-2.7'解釋器解釋。 :) – sshashank124

+0

'open(txt,'r')' – sshashank124

+0

你能否給我們一個這樣的文本文件的例子嗎?它是由點,斜線等分開? –

回答

1

nums是一個列表,所以你需要調用它的每個元素int,如:

sums = map(int, nums) 
+0

你是否也可以包含'open(txt,'r')'? – sshashank124

+0

''r''是默認值。 – Matthias

2

緊湊型(和安全 - 你不關閉您的文件)的方式:

def sum_this(txt): 
    with open(txt, "rb") as f: 
     return sum(int(num) for num in f.read().split()) 
0

這應該工作

sum = 0; 
fileop = open(txt, 'r'); 
A = readlines(fileop); 
for i in range(0, len(A)): 
    sum = sum + A[i] 
return sum 
0

這裏是一個不錯的襯墊:

def sum_this(text_file): 
    return sum(map(int, (open(text_file,'r').read().split('\n'))) 
end 

基本上,你讀它在open一部分,那麼它read()成一個字符串,並基於該nextLine屬性拆分它。我有python-2.7,它適用於我。