Tkinter 从按钮的另一个定义中获取 txt 数据

Tkinter taking txt data from another definition of button

我的代码现在看起来像这样:

def browse_button():
    ftypes1 = [('file', '*.txt')]
    filename1 = filedialog.askopenfilename(filetypes = ftypes1)
    print(filename1)
    with open(filename1) as newfile1:
        file1 = pd.read_table(newfile1, sep=',', names=('A', 'B', 'C'))
        print file1

    return filename1

def file_button():
    abc=browse_button()
    print abc
                  # in this definition i want to work on the input file that  
                    i have imported at start in browse_button definition,but 
                    it doesn't work good

我正在使用此代码 运行 他们

if __name__ == '__main__':
    root = Tk()
    root.title('title')
    root.geometry("450x150+200+200")
    b1 = Button(root, text='one', font=('arial', 12), command=browse_button)
    b1.pack(side=LEFT, padx=5, pady=5)
    b6 = Button(root, text='file', font=('arial', 12), command=file_button)
    b6.pack(side=LEFT, padx=5, pady=5)

谢谢你的建议!

在您的问题中,您已声明要处理已打开的文件,但您所做的只是 returning 只是文件名。

return(filename1) 您的 browse_button() 函数中的这条语句只是 return 将文件名 file_button() 而不是数据。结果说文件名是 my_file print abc 将导致:my_file

在您创建变量的位置 filename1 您所做的只是获取文件名。如果您尝试使用文件的内容,那么您需要从 with open 语句中 return file1

更新:

我创建了一个类似的代码,用于打开我创建的文本文件并使用第二个函数打印出其内容。

编辑:我将你的按钮添加到我的答案中,这样你就可以看到它们应该如何组合在一起。

# Python 3 imports
from tkinter import *
from tkinter.filedialog import askopenfilename

# Python 2 imports
# from Tkinter import *
# from tkFileDialog import askopenfilename

def browse_button():
    ftypes1 = [('file', '*.txt')]
    filename1 =  askopenfilename(filetypes = ftypes1)
    with open(filename1) as newfile1:
        file1 = newfile1.read()
        print (file1)

    return filename1

def file_button():
    abc=browse_button()
    print (abc)

if __name__ == '__main__':
    root = Tk()
    root.title('title')
    root.geometry("450x150+200+200")
    b1 = Button(root, text='one', font=('arial', 12), command=browse_button)
    b1.pack(side=LEFT, padx=5, pady=5)
    b6 = Button(root, text='file', font=('arial', 12), command=file_button)
    b6.pack(side=LEFT, padx=5, pady=5)

    root.mainloop()

结果:

Content of my_file!