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!
我的代码现在看起来像这样:
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!