【问题标题】:Open and Read text files in Tkinter Python在 Tkinter Python 中打开和读取文本文件
【发布时间】:2018-02-26 01:43:00
【问题描述】:

我正在尝试在 Tkinter 中创建一个记事本类型的程序,但不知道如何将文件的内容显示到标签...

我已经能够将其内容显示到 pyCharm shell,但是当我尝试在标签中显示时出现错误。

def openFile():
    fToOpen = filedialog.askopenfilename(filetypes=[("Text files","*.txt")])
    #print(fToOpen.read()) <-- ##This works##
    fileToOpen = open(fToOpen, 'r')
    Label(root, fileToOpen.read()).pack() <-- ##This doesn't##
    fToOpen.close()

我得到的错误是:

Traceback (most recent call last):
  File "C:\Users\Hello\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 1699, in __call__
    return self.func(*args)
  File "C:/Users/Hello/Documents/html/Python/Prog.py", line 143, in openFile
    Label(root, fileToOpen.read()).pack(fill=Y)
  File "C:\Users\Hello\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 2760, in __init__
    Widget.__init__(self, master, 'label', cnf, kw)
  File "C:\Users\Hello\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 2289, in __init__
    classes = [(k, v) for k, v in cnf.items() if isinstance(k, type)]
AttributeError: 'str' object has no attribute 'items'

谁能帮帮我?

【问题讨论】:

  • 你考虑过阅读 tkinter 的标签文档吗?
  • 我有,而且我做了一个小突破:我忘记放 text=fToOpen.read() 但现在在标签中,它显示控制台错误...
  • 我现在已经解决了。我要求打开文件而不是文件名,然后在 text=fToOpen.read() 中显示文件 - 谢谢!
  • 你确定print(fToOpen.read()) &lt;-- ##This works## 真的有效吗?

标签: python python-2.7 tkinter pycharm


【解决方案1】:

这其实很简单。

您需要做的就是打开文件并将信息读入小部件的text 属性。

这可以如下完成:

from tkinter import *

root = Tk()

with open("file.txt", "r") as f:
    Label(root, text=f.read()).pack()

root.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 2014-03-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 2013-09-03
    • 2022-01-17
    相关资源
    最近更新 更多