Python快速定位工作目录

python

原文链接:http://www.cnblogs.com/wdong/archive/2010/08/19/1802951.html

       常年奋斗在编码一线的同学,应该都深有体会,工作久了,很多项目文件、技术资料,设计文档,安装包等等一堆一堆的工作目录分散在各个磁盘中,需要用到的时候,频繁的在各个目录中切换,每次都得用资源浏览器打开,还得点多次鼠标才能找到,或者有些如Apache或者tomcat等服务又需要用命令行启动,如果文件目录层次比较深的话,每次重复下列动作:

开发运行->cmd->c:\\Documents and Settings\\Administrator>D:

D:\>cd mycode

D:\>MyCode>cd python

D:\>MyCode>Python>Practise>...

    反反复复的重复动作真的是太烦了,自己动手丰衣足食,还是用代码自己来写一段快速定位或切换工作目录的小工具,像工具软件一样点一下就直接打开,岂不是省去敲打那些无聊的cd命令,ok,因为已经凌晨了,突然来了兴致即兴发挥,实在搞不完,这一篇写把总体思路及几个关键的核心代码实现掉,下一篇完成所有功能

    总体思路:

    1.软件中可自定义常用工作目录或文件的配置项

    2.选择某一工作目录项可打开命令行,路径直接指向到指定的文件夹处

    3.选择某一工作目录项可打开资源浏览器,路径直接指向到指定的文件夹处

    4.选择某一文件项可直接打开执行

    5.使用python + Qt实现图形化操作界面(基于托盘图标)的工具软件

    此篇实现前四个核心功能需求

    1.使用python ConfigParser实现可配置项

代码:

 class ConfigItem(object):

2 def __init__(self,category,caption,path,icon,command, explorer, execute):

3 self.category = category

4 self.caption = caption

5 self.path = path

6 self.icon = icon

7 self.command = command

8 self.explorer = explorer

9 self.execute = execute

10

11 def readConfigItems(file,sect=None,key=None):

12 if not os.path.isfile(file):

13 raise Exception("FileNotFound")

14 cf = ConfigParser.ConfigParser()

15 cf.read(file)

16 sections = cf.items("sections")

17

18 if sect is None and key is None:

19 l = []

20 for name,key in sections:

21 i = ConfigItem(

22 category= cf.get(key,"category"),

23 caption=cf.get(key,"caption"),

24 path=cf.get(key,"path"),

25 icon=cf.get(key,"icon"),

26 command=cf.getboolean(key,"command"),

27 explorer=cf.getboolean(key,"explorer"),

28 execute=cf.getboolean(key,"execute")

29 )

30 l.append(i)

31 return l

32 return cf.get(sect,key)

33

34 def addConfigItem(file,item):

35 config = ConfigParser.RawConfigParser()

36 if not os.path.isfile(file):

37 raise Exception("FileNotFound")

38 config = ConfigParser.ConfigParser()

39 config.read(file)

40 sections = config.items("sections")

41 new_section = "section" + str(len(sections)+1)

42 config.set("sections",new_section,new_section)

43 config.add_section(new_section)

44 config.set(new_section, \'category\', item.category)

45 config.set(new_section, \'caption\', item.caption)

46 config.set(new_section, \'path\', item.path)

47 config.set(new_section, \'icon\', item.icon)

48 config.set(new_section, \'command\',item.command)

49 config.set(new_section, \'explorer\', item.explorer)

50 config.set(new_section, \'execute\', item.execute)

51 # Writing our configuration file to \'example.cfg\'

52 with open(file, \'wb\') as configfile:

53 config.write(configfile)

54

55

56 if __name__ == "__main__":

57 #os.execvp(file)

58 #openCommand(r"D:\MyCode\Python\Pratices")

59 #openExplorer(r"D:\MyCode\Python\Pratices")

60 item = ConfigItem(

61 category= "3",

62 caption="test",

63 path=1,

64 icon=1,

65 command=True,

66 explorer=True,

67 execute=True

68 )

69 addConfigItem("d:\\conf.conf", item)

70 print readConfigItems("d:\\conf.conf")


  配置文件格式:

[sections]

section2 = section2

section1 = section1

[section2]

category = 1

execute = False

explorer = True

caption = 工作目录

command = True

path = 1

icon = 1

[section1]

category = 工作目录

execute = True

explorer = True

caption = Python练习代码

command = True

path = 1

icon = 1


2.使用命令行、资源浏览器打开指定文件夹目录或直接执行可执行文件 

# !/usr/bin/python

2 #-*-coding:utf-8-*-

3 """

4 author: "wdong"

5 date: @2010-8-18

6 summary:quick start your command file or explorer file or exec file

7 """

8

9 import os, time, datetime,sys

10 import ConfigParser

11

12 def openCommand(dest):

13 """

14 Specify the folder to opened by command line

15 """

16 cmd = "cmd /k cd \"" + dest + "\""

17 import subprocess

18 subprocess.Popen(cmd, shell=True)

19

20 def openExplorer(dest):

21 """

22 Specify the folder to opened by Explorer

23 """

24 cmd = "explorer \"" + dest + "\""

25 import subprocess

26 subprocess.Popen(cmd, shell=False)

27

28 def execFile(file):

29 """

30 execute the file by system register file type

31 """

32 if os.path.isfile(path):

33 try:

34 os.system(file)

35 except:

36 os.system("file:///" + str(file).replace("\\\\", "/"))

37 else:

38 openExplorer(file)

    至此,核心功能调试完毕,明天接着做图形工具的实现,各位同行朋友,如果仔细读完,其实接下来的实现已经很简单了,有兴趣也可以自己做个界面玩玩,同时也希望高手们多多指点

   

我的Python工具-快速定位工作目录(二)


以上是 Python快速定位工作目录 的全部内容, 来源链接: utcz.com/z/388546.html

回到顶部