У меня есть следующий код, где я пытаюсь разрешить пользователю открыть текстовый файл, и как только пользователь выбрал его, я хотел бы, чтобы код прочитал его (это не готовый блок кода, просто чтобы показать, что я ищу).
Тем не менее, у меня возникают трудности либо с использованием tkFileDialog.askopenfilename и добавлением 'mode='rb'', либо с использованием кода, подобного приведенному ниже, и с помощью read там, где это приводит к ошибке.
Кто-нибудь знает, как я могу это организовать, так как я не хочу вводить Tkinter.'module' для каждого элемента, такого как Меню и Listbox. Новичок в Ткинтере и немного запутался! Спасибо за помощь!
import sys
from Tkinter import *
import tkFileDialog
from tkFileDialog import askopenfilename # Open dialog box
fen1 = Tk() # Create window
fen1.title("Optimisation") #
menu1 = Menu(fen1)
def open():
filename = askopenfilename(filetypes=[("Text files","*.txt")])
txt = filename.read()
print txt
filename.close()
fen1.mainloop()
Очевидно, что ошибка, которую я получаю здесь:
AttributeError: 'unicode' object has no attribute 'read'
Я не понимаю, как использовать askopen, а также иметь возможность читать файл, который я открываю.