我正在尝试通过python打开文件

问题描述 投票:-4回答:1

我正在尝试通过我的python项目打开文件,但是它不起作用。有什么原因吗?


import os
from tkinter import *
from tkinter import filedialog
from PIL import ImageTk,Image

def openfile():

   window.filename = filedialog.askopenfilename(initialdir="Open file", filetypes=(("exe files", "*.exe"),("all files", "*.*"))
    file_opener = open(window.filename)
    file_opener.read()

Button = Button(window, text="Open", command=openfile)
Button.pack()

python button tkinter
1个回答
0
投票

有一些错误:

  • filedialog模块的名称为tkinter.filedialog。写from tkinter.filedialog import *允许您只写askopenfilename()代替filedialog.askopenfilename()

  • 您使用window.filename = ...犯了意图错误。

  • 您在同一行的末尾忘记了右括号。

  • 未定义名称window

  • 要读取文件,必须将file_opener.read()内容放入变量中。

  • 您必须在读取文件后将其关闭。您可以使用with

  • 要在标题栏中写入“打开文件”,必须将initialdir替换为title

  • 如果用户单击文件对话框中的cancel,则会发生错误。因此,将with open...放在try ... except块中。

更正的脚本(我删除了PIL,因为有时无法导入它:]

import os
from tkinter import *
from tkinter.filedialog import *


window = Tk()

def openfile():
    window.filename = askopenfilename(title="Open file", filetypes=(("exe files", "*.exe"),("all files", "*.*")))
    data = ""
    try:
        with open(window.filename) as f:
            data = f.read()
    except:
        pass

Button = Button(window, text="Open", command=openfile)
Button.pack()
© www.soinside.com 2019 - 2024. All rights reserved.