2016-04-14 4 views
1

habe ich versucht, sie aus jeder Zeile addieren aber es funktioniert:Gibt es eine Möglichkeit ganze Zahlen zu addieren, die ich aus einer TXT-Datei abgerufen haben

Number Date   ID  Total Status Paid 
['E5345', '22/09/2015', 'C106', '815', 'A', '400'] 
Amount_Outstanding: 
415 
['E5348', '23/09/2015', 'C109', '370', 'A', '200'] 
Amount_Outstanding: 
170 
['E5349', '25/09/2015', 'C110', '480', 'A', '250'] 
Amount_Outstanding: 
230 
['E5353', '28/09/2015', 'C114', '272', 'A', '200'] 
Amount_Outstanding: 
72 
['E5355', '29/09/2015', 'C116', '530', 'A', '450'] 
Amount_Outstanding: 
80 
['E5363', '01/10/2015', 'C124', '930', 'A', '500'] 
Amount_Outstanding: 
430 
['E5364', '02/10/2015', 'C125', '915', 'A', '800'] 
Amount_Outstanding: 
115 
['E5367', '03/10/2015', 'C128', '427', 'A', '350'] 
Amount_Outstanding: 
77 
['E5373', '10/10/2015', 'C134', '1023', 'A', '550'] 
Amount_Outstanding: 
473 

Also habe ich mich gefragt, ob ich die Summe jeder Amount_Outstanding hinzufügen könnte und es in eine andere Variable ändern, daran denkt, einen ‚outstanding_amount indem ich bin neu in python und csv

+0

Warum nicht den ausstehenden Betrag in einer Liste speichern? Auf diese Weise können Sie alle zusammenfassen und bei Bedarf auch einzeln darauf zugreifen. – Adib

+0

Also, wie würde ich damit anfangen? –

Antwort

1

Sie dieses Problem lösen können 'l ist, wo können Sie in es alle ausstehenden Beträge setzen und gewinnen: D

#build the list 
outstanding_amount = [] 

# read file second time to display its contents with the headers 
with open(FILE_NAME) as f: 
    reader = csv.reader(f, delimiter=',') 
    # display justified column headers 
    print(' ' + ' '.join(col_header.ljust(max_col_widths[i]) 
          for i, col_header in enumerate(COL_HEADERS))) 
    # display justified column data 
    for columns in reader: 
     if "A" in columns and int(columns[5]) < int(columns[3]): 
      print(columns) 
      print ("Amount_Outstanding:") 
      print (int(columns[3]) - int(columns[5])) 

      ###### NEW PART ###### 
      outstanding_amount.append(int(columns[3]) - int(columns[5])) 

# Show the sum of all collected outstanding amount 
print (sum(outstanding_amount)) 

Sie können sogar den Datensatz zugreifen, indem Sie so etwas wie dies zu tun.

Zum Beispiel, wenn Sie den ausstehenden Betrag für den 2. Artikel wissen möchten. Dann tun Sie:

print outstanding_amount[1] # Since we start from 0, the second item is at index 1 
+0

Danke, ich bin seit Ewigkeiten festgefahren. Sehr geschätzt! –

+0

@NigelHarrison Keine Sorge! – Adib

+0

@NigelHarrison Fragen Sie nach :) – Signal

Verwandte Themen