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获得当前工作目录和修改
import os curDir = os.getcwd() 最近使用Python 写了很多脚本,想导入脚本,发现不知道如何查看python 的默认工作目录,并修改默认工作目录. 方法/步骤 查 ...
- Python 改变当前工作目录
在shell里编辑: import os os.getcwd() #取得当前工作目录 os.chdir(r'目标目录') # os.chdir(r'd:\learnpy')
- Python改变当前工作目录
import os print(os.getcwd()) # 打印当前工作目录 os.chdir('/Users/<username>/Desktop/') # 将当前工作目录改变为`/U ...
- python获取当前工作目录
py文件所在位置/test/pj/hello.py 用户所在位置:/ 用户执行命令python /test/pj/hello.py 1. os.getcwd() 返回的是执行命令的位置 / 2.sys ...
- python中修改工作目录
- 第14.12节 Python中使用BeautifulSoup解析http报文:使用select方法快速定位内容
一. 引言 在<第14.10节 Python中使用BeautifulSoup解析http报文:html标签相关属性的访问>和<第14.11节 Python中使用BeautifulSo ...
- 第14.11节 Python中使用BeautifulSoup解析http报文:使用查找方法快速定位内容
一. 引言 在<第14.10节 Python中使用BeautifulSoup解析http报文:html标签相关属性的访问>介绍了BeautifulSoup对象的主要属性,通过这些属性可以访 ...
- 20180129周一之学习PYTHON笔记【安装、查看工作目录、】
一,安装过程中多选一个ADD的项,免去设置环境变量. 二,PYAUTOGUI模块控制键鼠. IMAGE模块. ----------------------python 如何查看与更换工作目录----- ...
- 「Python调试器」,快速定位各种疑难杂症!!
现在很多的编辑器其实都带着「调试程序」的功能,比如写 c/c++ 的 codeblocks,写 Python 的 pycharm,这种图形界面的使用和显示都相当友好,简单方便易学,这个不是我这篇文章要 ...
随机推荐
- 26.mget批量查询
主要知识点 一.mget批量查询的好处 get查询就是一条一条的查询,比如说要查询100条数据,那么就要发送100次网络请求,这个开销还是很大的.如果使用mget进行批量查询的话,查询 ...
- Django链接Mysql 8.0 出现错误(1045:Access denied for user 'root'@'localhost' (using password: NO) 的一种解决方法
运行环境: Django版本2.0 ; Mysql 版本 8.0.11; 错误代码: django.db.utils.OperationalError: (1045:Access denied fo ...
- 《奋斗吧!菜鸟》 第八次作业:Alpha冲刺 Scrum meeting 5
项目 内容 这个作业属于哪个课程 任课教师链接 作业要求 https://www.cnblogs.com/nwnu-daizh/p/11012922.html 团队名称 奋斗吧!菜鸟 作业学习目标 A ...
- java中Date与String转化 string转float
这种转换要用到java.text.SimpleDateFormat类 字符串转换成日期类型: 方法1: Date date=new Date("2017-02-01"); 方法2: ...
- Timus - 1213 - Cockroaches!
先上题目: 1213. Cockroaches! Time limit: 1.0 secondMemory limit: 64 MB It's well-known that the most ten ...
- 使用厂商MIB库查找设备OID值并实施监控的方法
https://wenku.baidu.com/view/8f4b389e0029bd64783e2cd0.html
- jQuery实现轮播效果(一) - 基础
前戏: XXXX年XX月XX日,经理交给我一个站点新闻资讯网页开发的活儿.我一个java程序猿,怎么完毕得了网页设计这样高端的活儿呢! 之前尽管有学过一点HTML.CSS的知识.可是在实际的使用中,把 ...
- expdp impdp 数据库导入导出命令具体解释
一.创建逻辑文件夹,该命令不会在操作系统创建真正的文件夹.最好以system等管理员创建. create directory dpdata1 as 'd:\test\dump'; 二.查看管理理员文件 ...
- 学习日记之原型模式和Effective C++
原型模式(Prototype):用原型实例制定创建对象的种类,而且听过拷贝这些原型创建新的对象. 浅复制:假设字段是值类型的,则对该字段运行逐位复制.假设字段是引用类型.则复制引用但不复制引用的对象. ...
- 【cocos2d-x 3.7 飞机大战】 决战南海I (十二) 游戏结束场景
游戏结束的时候,要显示分数.还要可以选择是返回主场景还是退出游戏 // 退出游戏 void menuCloseCallback(cocos2d::Ref* pSender); // 返回主界面 voi ...