Открытие и чтение файла с askopenfilename

У меня есть следующий код, где я пытаюсь разрешить пользователю открыть текстовый файл, и как только пользователь выбрал его, я хотел бы, чтобы код прочитал его (это не готовый блок кода, просто чтобы показать, что я ищу).

Тем не менее, у меня возникают трудности либо с использованием 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, а также иметь возможность читать файл, который я открываю.

9
задан nbro 6 March 2015 в 12:33
поделиться