Python 如何为变量分配不同的函数,以便根据条件使用不同的函数
我想在一个变量上分配不同的函数。 因此,代码如下所示:Python 如何为变量分配不同的函数,以便根据条件使用不同的函数,python,pandas,Python,Pandas,我想在一个变量上分配不同的函数。 因此,代码如下所示: import pandas as pd def read_to_pandas(filename): extension=filename[filename.rfind('.')+1:] if ext ='xlsx': func = pd.read_excel() if ext=='csv': func = pd.read_csv() return func(path) d
import pandas as pd
def read_to_pandas(filename):
extension=filename[filename.rfind('.')+1:]
if ext ='xlsx':
func = pd.read_excel()
if ext=='csv':
func = pd.read_csv()
return func(path)
df = func('D:/Data/data.csv')
但它不起作用。
如何重新分配变量函数?请尝试
def read_to_pandas(filename):
extension=filename[filename.rfind('.')+1:]
if extension == 'xlsx':
func = pd.read_excel
if extension == 'csv':
func = pd.read_csv
return func
df = read_to_pandas('D:/Data/data.csv')
像这样的东西可以帮助你
读取csv应具有pd。读取csv
和读取excel应具有pd。读取excel
由于问题更具体于分配变量,以下是该问题的版本:
def read_csv():
print("Reading CSV")
def read_excel():
print("Reading Excel")
filename = "sample.csv"
read_pd = {'csv':read_csv,'xlsx':read_excel}
func = None
extension=filename[filename.rfind('.')+1:]
print(extension)
if extension in read_pd:
func = read_pd[extension]
func()
只需删除
pd.read_excel()
和pd.read_csv()
末尾的括号(
),此时您不想调用函数。在dict上迭代以测试您是否有一个键违背了dict的目的。只需执行以下操作:如果在read_pd中扩展:read_pd[extension]()
是的,错过了它,更新了同样的内容。谢谢。谢谢你的想法,但在我的例子中,我做了一些其他特定于扩展的事情,所以我有点局限于“if-then”。因为问题更具体地分配给变量,所以我对代码做了一些修改以适合您,根据输入的文件格式,我们只是将其分配给一个变量,然后调用它将触发相应的函数。
def read_csv():
print("Reading CSV")
def read_excel():
print("Reading Excel")
filename = "sample.csv"
read_pd = {'csv':read_csv,'xlsx':read_excel}
func = None
extension=filename[filename.rfind('.')+1:]
print(extension)
if extension in read_pd:
func = read_pd[extension]
func()