有没有一种快速的方法将excel文档与python中的函数相匹配?
我知道这个问题很模糊,我很难想出更好的标题 基本上,我拥有的是一个充满大约90个不同函数的模块,所有这些函数都有不同的名称,并且大部分都有稍微不同的代码。我从excel表格中导入了大量数据,需要一个函数来匹配每个数据 当前,我重命名每个excel工作表,然后在读取excel文件时在getattr中使用该字符串调用正确的函数。我的脚本在文件夹中循环并检查每个文件 除了使用过多的try-except语句之外,有没有一种方法可以做到不必重命名文件,也不必try/except 我曾考虑过在excel表格中搜索标题,然后在标题中搜索我需要的列名,但这似乎效率很低,而且同一列类型有很多不同的名称,例如,体积可以是数量、数量、体积、体积、标称等 我并不是真的期望有更好的方法来做到这一点,但希望如此 这就是我调用的函数之一的样子:有没有一种快速的方法将excel文档与python中的函数相匹配?,python,excel,python-2.7,Python,Excel,Python 2.7,我知道这个问题很模糊,我很难想出更好的标题 基本上,我拥有的是一个充满大约90个不同函数的模块,所有这些函数都有不同的名称,并且大部分都有稍微不同的代码。我从excel表格中导入了大量数据,需要一个函数来匹配每个数据 当前,我重命名每个excel工作表,然后在读取excel文件时在getattr中使用该字符串调用正确的函数。我的脚本在文件夹中循环并检查每个文件 除了使用过多的try-except语句之外,有没有一种方法可以做到不必重命名文件,也不必try/except 我曾考虑过在excel表格
def test(path):
df = pd.read_excel(path, sheetname=1, header=19, parse_cols='A, B, D, G, H')
df = df.rename(columns={'ItemList': 'item', 'Volume': 'vol', 'Price': 'price', 'Date': 'date', 'Commish': 'com'})
df = df.dropna()
return df
我运行脚本,它读取os.listdirfpath中文件名的文件夹
我从文件名中去掉文件类型,使test.xlsx成为test,然后将其传递到函数中
def dfReturn(path, excelName):
func = getattr(function_module, excelName)
if func:
df = func(path)
return df
我想做的是摆脱getattr,或者至少使其不必命名为任何特定的文件。如果不看到代码,很难回答这个问题。首先,为什么要使用try/except块?如果你不需要,就把它们拿出来。为什么要重命名该文件?如果您的每个函数都在一个特定的文件名上运行,请重写它们,以便它们采用一个文件名参数。我不这么认为,这只是我在考虑的问题。假设您调用脚本并将excel文件作为参数传递给process,您也可以将适当的函数作为参数传递……我将添加一些代码和我正在调用的函数的示例。我正试图使它更加自动化。@Kevin我最初计划只使用通用文件名并与之匹配。问题是,excel文件的名称一直在更改。