import glob
import csv
def read_with_csv(filename):
data = []
for x in csv.reader(open(filename, 'r')):
data.append(x)
return data
def calculate_sum(data_sample):
total = 0
for row in data_sample[1:]:
price = float(row[9])
total += price
return total
files = [file for file in glob.glob("*.csv") if 'Invoice-Item-Adjustment_' in file]
data_from_csv = read_with_csv(files)
the_sum = data_from_csv(calculate_sum)
print(the_sum)
У меня есть несколько файлов в каталоге и читать список и прокручивать сумму в столбце и умножать ежемесячную общую сумму. У меня эррос и не знаю, как с этим бороться.Прочтите csv-файлы и вычислите общую сумму
Traceback (most recent call last):
File "listing.py", line 18, in <module>
data_from_csv = read_with_csv(files)
File "listing.py", line 6, in read_with_csv
for x in csv.reader(open(filename, 'r')):
TypeError: invalid file: ['JEExport_20141201-20141218_Invoice-Item-Adjustment_20
150208164027.csv', 'JEExport_20150116-20150128_Invoice-Item-Adjustment_201502021
70516.csv'
]
получил его работу. в настоящее время я 2 файла там, но его дал мне один общий файл. Я хочу объединить в один файл с одной общей суммой. \ C:> питон listing.py 32925,46 37701,64 –
файлов = [для файла в glob.glob ("* CSV"), если 'Счет-Item-Adjustment_' в файле] для AFile в файлах: data_from_csv = read_with_csv (afile) the_sum = calculate_sum (data_from_csv) print (the_sum) –
@RicardLe Я понимаю, что вы хотите объединить итоги всех файлов в одну общую сумму. Я прав? Если да, то поддерживайте переменную say all_total переменную, инициализированную до 0, которая сохранит текущую итоговую сумму для всех обработанных файлов CSV (all_total + = calculate_sum (data_from_csv)). Когда все ваши файлы являются процессами all_total будет содержать общую сумму –