码迷,mamicode.com
首页 > 编程语言 > 详细

python的实战:一个目录一键启动管理小工具

时间:2017-11-07 19:47:30      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:with open   document   coding   文件中   get   使用   des   读取   ldo   

简单的学习了几天的python,总觉得最好根据自身的需求来做点小工具实战一下。

上班的时候由于有很多目录需要打开。每次都要一个个的找那些目录。
我觉得,我需要一个小工具。然后登记下,所有需要打开的目录。然后可以很方便的一键打开所有的目录
或者是有哪些文件。然后登记一下。可以一次性打开所有登记的目标
每次打开工具时,需要读取xml的数据。每增加一条数据要写入到xml中。
这样我们即使部使用辅助工具去添加记录。直接修改xml文件的数据来增加记录也是可以的。
具体实现如下

import os
import xml.dom.minidom as xmldom
datas={}
savepath="./manager.xml"

def main():
    loadXml(savepath)
    while(True):
        print("目录快捷管理程序")
        result= input("1、显示目录数据 2、添加新的管理目录 3、清屏 4、启动管理 0、打开所有目录:")
        if result=="1":
            for key in datas.keys():
                print(key,datas[key])
        elif result=="2":
            os.system("cls")
            addData()
        elif result == "3":
            os.system("cls")
        elif result == "4":
            os.system("cls")
            manager()
        elif result == "0":
            openAll()
            os.system("cls")
        else:
            print("输入错误请重新输入.")

#从文件中load数据到内存
def loadXml(xmlPath):
    root= xmldom.parse(xmlPath)
    nodes=root.getElementsByTagName("node")
    print("所有目录列表:")
    for node in nodes:
        key=node.getAttribute("name")
        value=node.getAttribute("path")
        datas[key]=value
        print(key,value)


#保存内存数据到文件
def saveXml(xmlPath):
    root=xmldom.Document()
    nodes= root.createElement("pathData")
    root.appendChild(nodes)
    for key in datas:
        node=root.createElement("node")
        node.setAttribute("name",key)
        node.setAttribute("path",datas[key])
        nodes.appendChild(node)
    with open(xmlPath,"wb+") as file:
        saveStr=root.toprettyxml(indent=‘\t‘,encoding="utf-8")
        print(saveStr)
        file.write(saveStr)
#打开所有保存的目录
def openAll():
    for key in datas:
        data = datas[key]
        if os.path.exists(data):
            os.startfile(datas[key])
            print(key, "启动成功")
        else:
            print(key, "不存在,启动失败.")

#添加新的路径模块
def addData():
    while (True):
        key = input("请输入别称(输入q退出):")
        if key.lower() == ‘q‘:
            break;
        value = input("请输入完整路径:")
        if os.path.exists(value):
            datas[key] = value
            saveXml(savepath)
            print("添加路径失败,路径不存在")

#启动管理的模块
def manager():
    print("别称列表:")
    for key in datas.keys():
        print(key)
    while True:
        startName = input("请输入启动别称(all为全部启动,q退出到上一层):")
        if startName.lower()==‘q‘:
            break;
        if startName.lower()==‘all‘:
            openAll()
            continue
        data = datas.get(startName)
        if data:
            if os.path.exists(data):
                os.startfile(data)
                print("成功打开",startName)
            else:
                print(data, "路径不存在.")

if __name__=="__main__":
    main()

  

python的实战:一个目录一键启动管理小工具

标签:with open   document   coding   文件中   get   使用   des   读取   ldo   

原文地址:http://www.cnblogs.com/kings0/p/7800364.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!