用python查找指定格式或名称的文件及修改指定文件夹名称
生活随笔
收集整理的這篇文章主要介紹了
用python查找指定格式或名称的文件及修改指定文件夹名称
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
寫這個也是為了能更好的學習python,大家有什么意見可以提出來,這個代碼直接放到編譯器中運行即可。 #-*- coding: GBK -*-?
import os, sys, re?
newdir = ""?
#遞歸搜索函數?
def search(rootdir,searchdirname):?
????????if os.path.isdir(rootdir):?
????????????????#print rootdir?
????????????????#分離路徑和文件夾?
????????????????split1 = os.path.split(rootdir)?
????????????????#print split1[1]?
????????????????#判斷是否為指定的文件夾?
????????????????if split1[1] == searchdirname:?
????????????????????????print "找到文件夾:%s" % (rootdir)?
????????????????????????try:?
????????????????????????????????#將文件夾名稱改為新的文件夾名稱?
????????????????????????????????os.rename(rootdir,split1[0]+"\\"+newdir)?
????????????????????????????????print "文件夾 [%s] 已改名為 [%s]" % (rootdir,newdir)?
????????????????????????except:?
????????????????????????????????pass?
????????????????#遍歷指定文件夾下的內容(文件和文件夾列表)?
????????????????listnew = os.listdir(rootdir)?
????????????????for l1 in listnew:?
????????????????????????path = rootdir + "\\" + l1?
????????????????????????#遞歸調用?
????????????????????????search(path,searchdirname)?
????????else:?
????????????????#print '不是文件夾:%s' % (rootdir)?
????????????????return?
?????????
#搜索指定格式的文件?????????
def find_file_by_pattern(pattern,base):????????
????????'''''查找給定文件夾下面所有 '''?????
????????re_file = re.compile(pattern)????????
????????if base == ".":????????
????????????????base = os.getcwd()????????
????????????????????????
????????final_file_list = []????????
????????#print base????????
????????cur_list = os.listdir(base)????????
????????for item in cur_list:????????
????????????????print item?
????????????????full_path = os.path.join(base, item)????????
????????????????if full_path.endswith(pattern):#不能寫成單引號,單引號達不到預期的效果?
????????????????# print full_path????????
????????????????????????#bfile = os.path.isfile(item)?
????????????????????????if os.path.isfile(full_path):?
???????????????????????????? if re_file.search(full_path):?
???????????????????????????????????? print re_file.search(full_path).group()?
???????????????????????????????????? final_file_list.append(full_path)????????
????????????????????????else:????????
???????????????????????????? final_file_list += find_file_by_pattern(pattern,full_path)?
????????????????#for filename in re_file.findall(final_file_list):?
???????????????????? # print filename?
????????????????else:?
????????????????????????continue?
????????return final_file_list?
def serchDir(startdir,dirname):?
????????search(startdir,dirname)?
?????????
if __name__ == '__main__':?
????????root=raw_input("輸入搜索目錄:")?
????????key=raw_input("輸入待搜索的文件夾名稱:")?
????????#newdir = raw_input("文件夾改名為:")?
????????#serchDir(root,key)?
????????base="".join([root,key])?
????????fileName=raw_input("請輸入要查找的文件名稱或后綴名:")?
????????for result in find_file_by_pattern(fileName,base):?
????????????????print result 如果要查找指定名字的文件只需要將以下代碼屏幕即可 if full_path.endswith(pattern):#不能寫成單引號,單引號達不到預期的效果?
......?
......?
......?
else:?
????????????????????????continue 將這三行屏幕后就可以用文件名進行搜索了。
本文轉自sucre03 51CTO博客,原文鏈接:http://blog.51cto.com/sucre/354425,如需轉載請自行聯系原作者
import os, sys, re?
newdir = ""?
#遞歸搜索函數?
def search(rootdir,searchdirname):?
????????if os.path.isdir(rootdir):?
????????????????#print rootdir?
????????????????#分離路徑和文件夾?
????????????????split1 = os.path.split(rootdir)?
????????????????#print split1[1]?
????????????????#判斷是否為指定的文件夾?
????????????????if split1[1] == searchdirname:?
????????????????????????print "找到文件夾:%s" % (rootdir)?
????????????????????????try:?
????????????????????????????????#將文件夾名稱改為新的文件夾名稱?
????????????????????????????????os.rename(rootdir,split1[0]+"\\"+newdir)?
????????????????????????????????print "文件夾 [%s] 已改名為 [%s]" % (rootdir,newdir)?
????????????????????????except:?
????????????????????????????????pass?
????????????????#遍歷指定文件夾下的內容(文件和文件夾列表)?
????????????????listnew = os.listdir(rootdir)?
????????????????for l1 in listnew:?
????????????????????????path = rootdir + "\\" + l1?
????????????????????????#遞歸調用?
????????????????????????search(path,searchdirname)?
????????else:?
????????????????#print '不是文件夾:%s' % (rootdir)?
????????????????return?
?????????
#搜索指定格式的文件?????????
def find_file_by_pattern(pattern,base):????????
????????'''''查找給定文件夾下面所有 '''?????
????????re_file = re.compile(pattern)????????
????????if base == ".":????????
????????????????base = os.getcwd()????????
????????????????????????
????????final_file_list = []????????
????????#print base????????
????????cur_list = os.listdir(base)????????
????????for item in cur_list:????????
????????????????print item?
????????????????full_path = os.path.join(base, item)????????
????????????????if full_path.endswith(pattern):#不能寫成單引號,單引號達不到預期的效果?
????????????????# print full_path????????
????????????????????????#bfile = os.path.isfile(item)?
????????????????????????if os.path.isfile(full_path):?
???????????????????????????? if re_file.search(full_path):?
???????????????????????????????????? print re_file.search(full_path).group()?
???????????????????????????????????? final_file_list.append(full_path)????????
????????????????????????else:????????
???????????????????????????? final_file_list += find_file_by_pattern(pattern,full_path)?
????????????????#for filename in re_file.findall(final_file_list):?
???????????????????? # print filename?
????????????????else:?
????????????????????????continue?
????????return final_file_list?
def serchDir(startdir,dirname):?
????????search(startdir,dirname)?
?????????
if __name__ == '__main__':?
????????root=raw_input("輸入搜索目錄:")?
????????key=raw_input("輸入待搜索的文件夾名稱:")?
????????#newdir = raw_input("文件夾改名為:")?
????????#serchDir(root,key)?
????????base="".join([root,key])?
????????fileName=raw_input("請輸入要查找的文件名稱或后綴名:")?
????????for result in find_file_by_pattern(fileName,base):?
????????????????print result 如果要查找指定名字的文件只需要將以下代碼屏幕即可 if full_path.endswith(pattern):#不能寫成單引號,單引號達不到預期的效果?
......?
......?
......?
else:?
????????????????????????continue 將這三行屏幕后就可以用文件名進行搜索了。
本文轉自sucre03 51CTO博客,原文鏈接:http://blog.51cto.com/sucre/354425,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的用python查找指定格式或名称的文件及修改指定文件夹名称的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的世界糖块如何合成 我的世界糖块合成表
- 下一篇: websocket python爬虫_p