最近工作需要給大量檔案改名。恰巧,本人又在自學python,所以就想用python寫個程式來自動修改相應的檔名。下面就通過**來介紹一下我的做法吧。
先說一下,我的工作要求是,在所有的資料檔案前加上資料所在資料夾的名字,改完名字後把所有的檔案彙總到乙個新的資料夾。我要處理的檔案有的存放在次最後層目錄、有的存放在最後一層目錄(無論存放在**,最後加上的名字都是次次後層資料夾的名字)。所以,我要先判斷我取到的檔名是否是資料夾。如果是資料夾的話,就呼叫乙個處理資料夾的函式;若果是目標檔案的話,就呼叫處理檔案的函式。
具體**如下:
#說明:本人執行此程式的環境:win10+python2.7+sublime text2
# encoding=utf-8
import os
import os.path
import shutil
#定義乙個處理檔案的函式
def myrename(path,newpath,filename,filelist): #filename是要處理的檔名,filelist是要加上的資料夾的名字
#判斷path是否存在
if os.path.exists(path):
newfilename = filelist + filename
oldd = path
newd = os.path.join(newpath,newfilename)
os.rename(oldd,newd) #如果你不想改變檔案的所在位置,那麼把上一句的newd改為os.path.join(path,newfilename)即可
else:
print "path error!"
#定義乙個處理資料夾的函式
def yrename(path,newpath,filelist):
#判斷path是否存在
if os.path.exists(path):
filenames = os.listdir(path) #獲取該資料夾下的檔名
for filename in filenames: #迴圈內容和處理檔案的函式原理一樣
newfilename = filelist + filename
oldd = os.path.join(path,filename)
newd = os.path.join(newpath,newfilename)
os.rename(oldd,newd)
print "done!"
else:
print "path error!"
path = '你要處理的檔案的路徑' #格式為'd:\\...\\...'
path = unicode(path, "utf-8") #如果你的路徑含有中文,則需要加上這一句!
newpath = '你處理完的檔案要彙總到的資料夾路徑' #格式和path的一樣
newpath = unicode(newpath, "utf-8") #如果路徑含有中文,也要加這一句
filelists = os.listdir(path)
for filelist in filelists:
#print filelist(此句為我自己檢視結果所用,可以不要)
path1 = os.path.join(path,filelist)
filelists1 = os.listdir(path1)
for filelist1 in filelists1:
path2 = os.path.join(path1,filelist1)
if os.path.isdir(path2): #!!os.isdir()的引數一定要是路徑,我之前一直用檔名,然後總是得不到正確的邏輯!!所以才有上一句的join
yrename(path2,newpath,filelist) #呼叫處理資料夾的函式
else:
myrename(path2,newpath,filelist1,filelist)#呼叫處理檔名的函式
print "over" #處理完後,列印over
第一次發帖,歡迎指正! python批量修改檔名
修改前 flv檔案是從rar檔案中解壓出來的。由於英文不好,並且有的flv檔案的名字並不十分清晰明了,所以打算將flv檔案名字改為相應的rar檔案的名字。僅供參考,新手勿噴 主要使用了python中的re 正規表示式 和os模組中的函式。coding gb2312 import os import ...
Python 批量修改檔名
需要將收到的 bmp 檔案按名稱順序排列,而檔名本來的樣式類似於image12.bmp,現需要修改為12.bmp,由於檔案數量較大,所以產生了利用 python 修改的想法,雖然 很簡單,但還算成功。import os 檔案位址 path c users 迴圈處理資料夾內的每個檔案 forfile ...
python批量修改檔名
問題描述 資料夾1中有資料夾2s,2s中還有3s.pdf和4s.txt兩個檔案,現在要將3s.pdf和4s.txt重新命名為2s.pdf和2s.txt 實際情況是,資料夾1中有多個資料夾,要將這些資料夾中的檔案,都重新命名為資料夾的名字。就是收材料的時候姓名加學號打包收,現在要把整個包中的檔案按類分...