首页 > 解决方案 > 为不同的用户定义函数 def 调用对象

问题描述

我一直在尝试调用对象变量“file1”,它具有来自 askfileopen() 的文件路径,并希望使用不同的按钮对文件执行一些不同的操作,但它不起作用

我试图将 file1 设为全局,但如果我运行代码,askopen 会突然打开,我想调用 file1,它具有从 mfileopen 到 mfile0 的导入文件路径

def mfileopen():
   file1 = fdialog.askopenfile(filetypes=[("csv files", "*.csv"), 
                                          ("xlsx files", "*.xlsx")])


def mfile0(): 
   df = pd.read_csv(file1)
   list(df.columns)
   return df.columns

标签: python-3.x

解决方案


您的函数没有返回任何内容。因此,在您离开该功能后,您将结束范围并垃圾收集所有内容(摆脱它)。您还没有发布用于运行这两个函数的代码。您可以尝试以下方法:

def mfileopen():

    return fdialog.askopenfile(filetypes=[("csv files",".csv"),("xlsx 
    files",".xlsx")])

def mfile0(): 
    file1 = mfileopen()
    df = pd.read_csv(file1) 
    list(df.columns)  # do something here (e.g. print or return)

推荐阅读