Python开发GUI程序---tkinter试用

2021-02-22 14:56:49 浏览数 (4)

电脑上文档文件被流氓软件加密,文档打开后乱码,听说通过重命名将文件类型更换为*.js然后再更成原来的文件类型后缀可以实现解密,于是用tkinter写了一个简单的GUI程序方便此操作。既可以单独对一个文件,也可以对文件夹下的文件(不递归子文件夹)实现此操作。

代码如下:

代码语言:python代码运行次数:0复制
# -* - coding:utf-8 -*-
import os
import tkinter
import shutil
from tkinter import filedialog
from datetime import datetime


backupPath='D:/backup'

if not os.path.exists(backupPath):
    os.mkdir(backupPath)
root=tkinter.Tk()
root.title("文件备份")
dirBtn=tkinter.Button(root,text='打开目录')
dirBtn.grid(row=0,column=0)
dirLabel=tkinter.Label(root,text="你选择的目录")
dirLabel.grid(row=0,column=1)
okBtn1=tkinter.Button(root,text="OK")
okBtn1.grid(row=0,column=2)
fileBtn=tkinter.Button(root,text='打开文件')
fileBtn.grid(row=1,column=0)
fileLabel=tkinter.Label(root,text="你选择的文件")
fileLabel.grid(row=1,column=1)
okBtn2=tkinter.Button(root,text="OK")
okBtn2.grid(row=1,column=2)
tkinter.Label(root,text="为防止出错导致文件永久丢失或损坏,使用前请做好备份(D:/backup目录下保存有副本)").grid(row=2,columnspan=2)
tkinter.Label(root,text="打开目录只能处理直接位于该目录下的文件,对子目录不起作用").grid(row=3,columnspan=2)
global filedialog
global dirPath
global filePath
def openDirDialog(e):
    path=filedialog.askdirectory()                                 
    dirLabel['text']=path
    global dirPath
    dirPath=path
    print(path)

def openFileDialog(e):
    dialog=filedialog.askopenfile()
    if not dialog:
        return 
    path=dialog.name
        
    fileLabel['text']=path
    global filePath
    filePath=path
    print(path)

def souDir(e):
    global dirPath
    path=dirPath
    name=os.path.basename(path)
    backup=os.path.join(backupPath,name)
    if os.path.exists(backup):
        shutil.rmtree(backup)
    shutil.copytree(path,backup)
    files=os.listdir(path)
    for i in files:
        file=os.path.join(path,i)
        if(os.path.isfile(file)):      
            p,ext=os.path.splitext(file)
            if(ext!=''):
                os.rename(file,p ".js")
                os.rename(p '.js',p ext)

def souFile(e):
    global filePath
    path=filePath
    name=os.path.basename(path)
    #now=datetime.now()
    
    #name=name '_' now.strftime('%Y-%m-%d-%H-%M-%S')
    backUp=os.path.join(backupPath,name)
   
    shutil.copyfile(path,backUp)
    
    
    p,ext=os.path.splitext(path)
    if(ext!=''):
        os.rename(path,p ".js")
        os.rename(p '.js',p ext)
dirBtn.bind('<Button-1>',openDirDialog)
okBtn1.bind('<Button-1>',souDir)
fileBtn.bind('<Button-1>',openFileDialog)
okBtn2.bind('<Button-1>',souFile)

root.mainloop()




0 人点赞