如何使用打开的文件在多个函数中重用它?

时间:2016-09-14 13:52:11

标签: python tkinter

我是python的初学者而不是完全双语,所以我希望你理解我。我正在尝试开发一个代码,任何人都可以打开一个文件,以便在图形matplotlib中显示它的内容,使用一个名为read_file()的函数来实现这一点,我将使用该函数获取数据并插入{{1没有任何问题。我完成了功能,但是当我想从另一个名为Listbox的函数调用文件中包含的信息时,我的担忧就出现了,在这部分我需要使用加载的文件(在show_graph()函数中),实现这一目标的唯一方法是添加:

read_file()

我可以用它绘图,但对我来说不实用,换句话说如何使用一个打开的文件在多个函数中重用它?

有人可以给我支持解决这个问题吗?

以下是完整的代码:

f = open(‘example1.las')

log = LASReader(f, null_subs=np.nan)

2 个答案:

答案 0 :(得分:0)

您可以使用全局变量来保留它,在变量名称之前将其声明为全局变量(在您的情况下为f)。但是,如果您要修改文件,我不建议使用它。

答案 1 :(得分:0)

这是你使用的拉丝机吗? https://scipy.github.io/old-wiki/pages/Cookbook/LASReader.html

然后你不需要给它一个文件句柄。只需给出文件名,这应该可以解决问题。读者将在解析后关闭文件。

def read_file():
    filename = tkFileDialog.askopenfilename()
    log = LASReader(filename, null_subs=np.nan)

如果您已经阅读了文件的内容,通常可以在以后关闭它:

f = open(filename)
log = LASReader(f, null_subs=np.nan)
f.close()

或使用它自动关闭文件

with open(filename, 'r') as f:
    log = LASReader(f, null_subs=np.nan)
相关问题