1. 程式人生 > >python的實戰:一個目錄一鍵啟動管理小工具

python的實戰:一個目錄一鍵啟動管理小工具

app Coding put str top ini add nal 讀取

簡單的學習了幾天的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的實戰:一個目錄一鍵啟動管理小工具