发布于2021-08-29 14:06 阅读(909) 评论(0) 点赞(0) 收藏(0)
写了一个程序:
import tkinter;from tkinter import *;from tkinter import ttk,messagebox,filedialog import zipfile,os def un_zip(file_name): """unzip zip file""" zip_file = zipfile.ZipFile(file_name) if os.path.isdir(file_name + "_files"): pass else: os.mkdir(file_name + "_files") for names in zip_file.namelist(): zip_file.extract(names,file_name + "_files/") zip_file.close() return file_name+"_files/" def file_name(file_dir): global c,d,e c,d,e=[],[],[] for root, dirs, files in os.walk(file_dir): print('root_dir:', root) # 当前目录路径 c+=root print('sub_dirs:', dirs) # 当前路径下所有子目录 d+=dirs print('files:', files) e+=files return d+e class App(tkinter.Tk): '''创建一个App窗口''' def __init__(self): '''主程序''' global pth pth=None Tk.__init__(self) self.title("python项目管理器 By王若宇") self.iconbitmap("ptn.ico") bar=Menu(self) b1=Menu(bar) b1.add_command(command=self.new,label="新建") b1.add_command(command=self.save,label="保存") b1.add_command(command=self.save_new,label="另存为") b1.add_command(command=self.open,label="打开") b1.add_separator() b1.add_command(command=self.print,label="打印代码") b1.add_separator() b1.add_command(command=self.withdraw,label="关闭此窗口") b1.add_command(command=exit,label="退出程序") bar.add_cascade(menu=b1,label="文件/项目(F)") self.config(menu=bar) tabs=ttk.Notebook(self) tab1=Frame(tabs) #项目目录区 if not pth: global a a=Text(tab1,font=["微软雅黑",20]) a.insert(END,"请打开文件或项目。") a.pack() tabs.add(tab1,text="项目") tabs.pack() self.geometry(str(700)+"x"+str(500)) def new(self): '''新建文件''' a.pack() #下面是打开新窗口的代码 def save(self): '''保存文件''' def save_new(self): '''另存为...''' def open(self): '''打开''' filename=filedialog.askopenfilename(title="打开pyhon模块\\项目文件") global pth if filename.split('.')[-1]=="zip": try: pth=un_zip(filename) except Exception as e: if os.path.isdir(filename+"_files"): pth=filename+"_files" else: pth=None messagebox.showerror("出错了!","请联系作者,\n错误类型:"+str(type(e))+"\n错误原因:"+str(e)) pass else: try: name=str(__import__("random").randint(1000,9999)) os.mkdir(name) except Exception as e: name=str(__import__("random").randint(1000,9999)) os.mkdir(name) pth=name try: w=open(pth+"\\"+filename.split("\\")[-1],"w+",encoding="utf-8") w.write(open(filename,"r+",encoding="utf-8").read()) except: w=open(pth+"\\"+filename.split("/")[-1],"w+",encoding="utf-8") w.write(open(filename,"r+",encoding="utf-8").read()) print("正在读取:",filename) w.flush() print(w.read()) w.close() a.pack_forget() self.list_refrs() ##################结束################## def list_refrs(self): global listbx try:listbx except: listbx=Listbox(self) if listbx: pass else: listbx=Listbox(self,height=11) x=file_name(pth) rge=0 for i in x: item=i listbx.insert(rge,item) print("正在读取:",i) rge+=1 #刷新 listbx.place(x=100,y=100) Label(self,text="项目目录",font=["微软雅黑",20]).place(x=100,y=50) def print(self): '''打印代码''' if __name__=="__main__": #导入时不进入主循环 app=App() app.mainloop() 想要右键单击列表框时先模拟左键单击,再弹出右键菜单,大牛们请在评论区帮帮我,跪求代码。
作者:王若宇
链接:https://www.pythonheidong.com/blog/article/1028920/5d683d19fcdb6ac956a9/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!