學了python一段時間,想用這門指令碼語言寫乙個指令碼,用來處理桌面檔案的整理,設計思路及相關資料鏈結整理如下:
1.讀取windows系統登錄檔檔案,獲得相關桌面的位址--(
2.獲取桌面位址下的檔案及資料夾的名稱,及檔案屬性--(
3.獲取各檔案的副檔名--(
4.獲取各檔案的修改時間--(
5.根據副檔名對各檔案進行歸類,包括新建資料夾操作,移動檔案操作--(
2013.5.20
onekeydesktop.py
#步驟一,由登錄檔獲取桌面位址
import winreg
def getdesktoppath():
key = winreg.openkey(winreg.hkey_current_user,
r"software\microsoft\windows\currentversion\explorer\shell folders")
return(winreg.queryvalueex(key, "desktop")[0])
def getotherdesktoppath():
key = winreg.openkey(winreg.hkey_current_user,
r"software\microsoft\windows\currentversion\explorer\user shell folders")
return(winreg.queryvalueex(key, "desktop")[0])
#步驟二,獲取桌面檔案及資料夾名稱列表
import os
def getfolderandfilename(desktoppath):
folder_file = {}
for d, fd, fl in os.walk(desktoppath):
folder_file =
return(folder_file)
#步驟三,獲取副檔名,並返回分類字典
def findsametypefile(files):
file_type =
file_dic = {}
for each_file in files:
temp_type = each_file.split('.')[-1]
if not temp_type in file_type:
file_dic[temp_type] = [each_file]
else:
return(file_dic)
#步驟四,獲取檔案修改時間,並返回分類字典
import time#and os
def getfilemtime(file):
modify_time = time.localtime(os.path.getctime(file))
return(str(modify_time.tm_year) + '-' +
str(modify_time.tm_mon))
def findsametimefile(file_path_head,files):
modify_time =
file_dic = {}
for each_file in files:
temp_time = getfilemtime(file_path_head + '\\' + each_file)
if not temp_time in modify_time:
file_dic[temp_time] = [each_file]
else:
return(file_dic)
#步驟五,根據分類字典,建立資料夾並將相關檔案歸類
import shutil
def organizefile(file_path_head, file_dic):
for each_key in file_dic.keys():
filepath_new = file_path_head + '\\' + each_key + '\\'
if not os.path.exists(filepath_new):
os.mkdir(filepath_new)
for each_file in file_dic[each_key]:
shutil.move(file_path_head + '\\' + each_file, filepath_new)
main.py
import onekeydesktop
desktop = onekeydesktop.getdesktoppath()
files = onekeydesktop.getfolderandfilename(desktop)['files']
file_dic_type = onekeydesktop.findsametypefile(files)
file_dic_time = onekeydesktop.findsametimefile(desktop, files)
onekeydesktop.organizefile(desktop, file_dic_type)
目前執行main.py後,可以使得桌面按照檔案型別歸類成相關資料夾,完成一開始預期的「一鍵桌面清理的目標」,包括一堆的快捷方式,及各種檔案,特別適合我這種很久都懶得清理桌面的人,呵呵
可以繼續改進的部分:
1.檔案型別歸類後,根據修改時間,對同一天的檔案再歸類,函式已寫出,但是沒有在main.py中實現
2.windows桌面路徑除了當前使用者桌面外,還包括公用桌面,部分程式的快捷方式會被放在公用桌面,但讀取的路徑為相對路徑,包含環境變數,如%userprofile%之類,考慮用正規表示式來處理,下篇博文就寫關於正規表示式~
python中的字典應用例項
字典中的鍵使用時必須滿足一下兩個條件 1 每個鍵只能對應乙個項,也就是說,一鍵對應多個值時不允許的 列表 元組和其他字典的容器物件除外 當有鍵發生衝突時 即字典鍵重複賦值 取最後的賦值。myuniversity dict traceback most recent call last file li...
應用例項 最新電工電路應用例項
電工學習網 www.diangon.com 最新電工電路應用例項 是根據最新國家職業標準,結合生產實際,以操作技能為主,以解決實際工作中的技術問題為目標而編寫的。本書的主要內容包括 照明 配電及單相電動機電路,電動機典型控制電路,電動機保護電路,工具機控制電路,穩壓電路及充電電路,電氣測量電路,pl...
mysql 應用例項 MySQL多例項應用
國內映象 2.上傳 解壓 tar xf mysql 5.6.46 linux glibc2.12 x86 64.tar.gz tar xf mysql 5.7.12 linux glibc2.12 x86 64.tar.xz tar xf mysql 8.0.18 linux glibc2.12 x...