修改前:flv檔案是從rar檔案中解壓出來的。由於英文不好,並且有的flv檔案的名字並不十分清晰明了,所以打算將flv檔案名字改為相應的rar檔案的名字。(僅供參考,新手勿噴)
**:主要使用了python中的re(正規表示式)和os模組中的函式。
#coding:gb2312
import os
import re
path="e:\\python1" #修改檔案所在的目錄
def rename_files(): #定義函式
for i in range(4):
for n in range(10): #每次迴圈查詢出數字順序對應的檔名稱.rar和.flv
prefix1 = "51cto.*-[%s][%s]-(.*)\.rar" %(i,n) #查詢rar檔案的規則,括號的作用,當使用re.findall()函式時,返回()中的內容,而不是所有匹配到的字元
prefix2 = "[%s][%s]-csvt-python.*\.flv"%(i,n) #查詢flv檔案的規則,當使用re.findall()函式時,返回匹配的字串
filename1=""
filename2=""
file_p1s=""
file_p2s=""
for filename in os.listdir(path): #查詢匹配的rar檔案
#print filename
if re.match(prefix1,filename): #如果匹配
file_p1 =re.findall(prefix1,filename) #re.findall()返回字串的列表
file_p1s=file_p1[0] #提取出列表中的字串
#print file_p1s
filename1 = filename #完整的rar檔名
if re.match(prefix2,filename): #查詢匹配的rar檔案,如果匹配
file_p2 =re.findall(prefix2,filename) #re.findall()返回字串的列表
file_p2s=file_p2[0] #提取出列表中的字串
#print file_p2s
filename2 = filename #完整的flv檔名
new_name = re.sub(prefix2,"%s%s"%(i,n)+file_p1s+".flv",filename2) #修改flv檔名
print new_name
print os.path.join(path,file_p2s)
print os.path.join(path,new_name)
os.rename(os.path.join(path,filename2),os.path.join(path,new_name)) #重新命名
if __name__ == "__main__":
rename_files()
修改後:rar檔案已經被我刪掉了。
總結:第一次寫python**,修修改改弄了近兩個小時才實現。還好成功了,還是有點成就感的。
python批量修改檔名
最近工作需要給大量檔案改名。恰巧,本人又在自學python,所以就想用python寫個程式來自動修改相應的檔名。下面就通過 來介紹一下我的做法吧。先說一下,我的工作要求是,在所有的資料檔案前加上資料所在資料夾的名字,改完名字後把所有的檔案彙總到乙個新的資料夾。我要處理的檔案有的存放在次最後層目錄 有...
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中有多個資料夾,要將這些資料夾中的檔案,都重新命名為資料夾的名字。就是收材料的時候姓名加學號打包收,現在要把整個包中的檔案按類分...