2015-04-19 4 views
-1

У меня проблема, и я понятия не имею, почему это не работает! : o Я хочу удалить текстовые файлы через tkinter, поэтому, когда «пользователь» записывает имя текстового файла и нажимает кнопку, он будет удален.Удаление текстовых файлов в Python tkinter

from tkinter import * 
import tkinter.messagebox 
import os, time 

root = Tk() 
root.geometry('450x320') 
root.title('Remove a Text File') 

def remove(): 
    if et in os.listdir(): 
     os.remove(et) 
     tkinter.messagebox.showinfo('Removed!', 'Successfully Removed!') 
    else: 
     tkinter.messagebox.showerror('Error!', 'File not found!') 


label1 = Label(root, text = 'What to remove ?') 
label1.place(x = 70, y = 140) 

entry1 = Entry(root) 
entry1.place(x = 180, y = 140) 

#To fix extension bug 
et = entry1.get() 
if '.txt' not in et: 
    et += '.txt' 

button1 = Button(root, text = 'Remove', command = remove) 
button1.place(x = 210, y = 200) 

root.mainloop() 
+0

Что означает «не работает»? Вы получили сообщение об ошибке? Удаляет ли он неправильный файл? Ничего не происходит? –

+0

Исправлено, проверьте это. – NikolaTEST

ответ

0

Здесь, проверить это: How to pass arguments to a Button command in Tkinter? (Edit: Это на самом деле не так уж и отношение к вопросу, но на самом деле полезные знания с TkInter;)

(В функции УДАЛИТЬ вашего кода, «и др» не правильно установить с содержанием в поле ввода в)

на самом деле, вот это исправлено:

from tkinter import * 
import tkinter.messagebox 
import os, time 

root = Tk() 
root.geometry('450x320') 
root.title('Remove a Text File') 



label1 = Label(root, text = 'What to remove ?') 
label1.place(x = 70, y = 140) 

entry1 = Entry(root) 
entry1.place(x = 180, y = 140) 

def remove(): 
    #To fix extension bug 
    et = entry1.get() 
    if '.txt' not in et: 
     et += '.txt' 

    print(os.listdir()) 
    print(et) 
    if et in os.listdir(): 
     print("os.remove(",et,")") 
     tkinter.messagebox.showinfo('Removed!', 'Successfully Removed!') 
    else: 
     tkinter.messagebox.showerror('Error!', 'File not found!') 

button1 = Button(root, text = 'Remove', command = remove) 
button1.place(x = 210, y = 200) 

root.mainloop() 
+0

Работаю, спасибо! – NikolaTEST

1

Вы получали значение O f et, прежде чем пользователь что-либо ввел. Попробуйте следующее:

from tkinter import * 
import tkinter.messagebox 
import os, time 

root = Tk() 
root.geometry('450x320') 
root.title('Remove a Text File') 

def remove(): 
    #To fix extension bug 
    et = entry1.get() 
    if '.txt' not in et: 
     et += '.txt' 
    if et in os.listdir(): 
     os.remove(et) 
     tkinter.messagebox.showinfo('Removed!', 'Successfully Removed!') 
    else: 
     tkinter.messagebox.showerror('Error!', 'File not found!') 


label1 = Label(root, text = 'What to remove ?') 
label1.place(x = 70, y = 140) 

entry1 = Entry(root) 
entry1.place(x = 180, y = 140) 


button1 = Button(root, text = 'Remove', command = remove) 
button1.place(x = 210, y = 200) 

root.mainloop() 
+0

Работая, мой друг дал мне тот же ответ! : D – NikolaTEST

Смежные вопросы