Skip to main content
 首页 » 编程设计

python之数组中不同文件的总和

2025年05月04日27lidabo

我有一个列表

paths = ['1.xlsx', '2.xlsx', '3.xlsx', '4.xlsx', '5.xlsx', '6.xlsx', '7.xlsx', '8.xlsx', '9.xlsx'] 

有文件名

和函数 sum_invoice(path) 它返回指定文件中的总和或总计

import glob 
import pandas as pd 
from pandas.io.excel import ExcelFile 
def sum_invoice(path): 
    xl = ExcelFile(path) 
    for sheet in xl.sheet_names: 
        df = xl.parse(sheet) 
        xy=df['INVOICE'] 
        nn=pd.to_numeric(xy, 'coerce') 
        nn = nn.reset_index(drop=True) 
        nn.fillna(0) 
        total=nn.loc[nn.last_valid_index()] 
        return total 
#create list of files named paths 
paths =[] 
for path in glob.iglob('*.xlsx'): 
    paths.append(path) 
    print(path) 
 
 
sum_all = sum(sum_invoice(path) for paths in paths) 
print sum_all 

如何使用函数遍历这些文件,并对所有文件返回的总数求和。

请您参考如下方法:

已经有一个sum()标准库中的函数。您应该将函数重命名为 sum_path() 或类似名称。

然后你可以通过使用 generator expression 来实现你想要的。用 sum() 作为:

sum(sum_path(p) for p in paths)