У меня есть следующий код, где я пытаюсь разрешить пользователю открывать текстовый файл, и как только пользователь его выбрал, я бы хотел, чтобы код его прочитал (это не готовый блок кода, чтобы показать, что мне нужно).Открытие и чтение файла с askopenfilename
Однако у меня возникают трудности с использованием tkFileDialog.askopenfilename и добавлением 'mode =' rb '' или с использованием кода, как показано ниже, и с помощью чтения, где он создает ошибку.
Кто-нибудь знает, как я могу договориться об этом, поскольку я не хочу набирать Tkinter.'module для каждого элемента, такого как Меню и Список. Начинающий от Tkinter и немного смущенный! Спасибо за помощь!
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, а также быть в состоянии прочитать файл я открываю.
Вы можете начать с более простой проблемой: вы можете написать программу на Python, которая открывает и печатает конкретный файл, скажем, '/ и т.д./passwd' или некоторые другие простые, известные к EXIST, файл? – sarnold
Я ранее работал с чтением и записью текстовых файлов, но никогда не использовал Tkinter и немного смущен после открытия файла, как он работает. Должен ли я отключить имя файла? – user2063