2016-03-23 10 views
-4

私は現時点でファイルの読み書きを学習していますが、ファイル内の数値を合計するには少し助けが必要です。何をしたいファイル内の数字を合計する必要があります

def main(): 
    sample = open (r'C:\user\desktop\text.txt','r') 
    for i in range (the range of int is unknown) 
     file = sample.read() 
    sample.close() 
main() 
+1

あなたは加算のどの部分を理解していない –

+0

...その後ポインタがファイルの末尾にある... 'sample.read()'一度だけ呼び出すことができますか?変数をゼロに初期化し、代入で+演算子を使用する方法を知っていますか?それはあなたが上がったファイルから整数を読み込んでいますか?ファイル内のデータはどのように見えますか? – scrappedcola

+0

'sum(map、int、sample.read()。split()))' –

答えて

1

は次のとおりです。

for line in sample: 
    # process the line 

各行がちょうど整数が含まれている場合、あなたはsum(map(int, sample))にそれをさらに簡素化することができます。

2

あなたは、このようなファイルを反復処理することがあります。

for i in sample: 

と整数にint()を使用して変換します。

forループはマップで実行でき、合計はsumとなります。

これは、最終的なコードです:安全性を追加するには

def main(): 
    sample = open (r'C:\user\desktop\text.txt','r') 
    result = sum(map(int, sample)) 
    print(result) 
    sample.close() 
main() 
0

、あなたはエラーチェックを使用して整数値をキャストして、ファイルがそれを読む前に存在していることを確認する必要があります。

import os 

def safecast(newtype, val, default=None): 
    try: 
     return newtype(val) 
    except ValueError: 
     pass 
    return default 

def sumfile(filename): 
    if not os.path.isfile(filename): 
     return None 
    sum = 0 
    with open(filename, "r") as file: 
     for line in file: 
      sum += safecast(int, line, 0) 
    return sum 

sum = sumfile(r'C:\user\desktop\text.txt') 
print(sum) 
関連する問題