Python批量修改檔案名
- 批量修改檔案名(保留后綴)
- 批量修改檔案名(全改)
- 讀取檔案下的所有檔案名
批量修改檔案名(保留后綴)
這種方法,保留了檔案原本的后綴,這里主要演示的是對圖片名的修改,
| 修改前 | 修改后 |
|---|---|
![]() | ![]() |
# 批量修改檔案名
# 批量修改圖片檔案名
import os
import re
import sys
path = 'F:\Temp\ZZ'
fileList = os.listdir(path) # 待修改檔案夾
print("修改前:"+str(fileList)) # 輸出檔案夾中包含的檔案
currentpath = os.getcwd() # 得到行程當前作業目錄
os.chdir(path) # 將當前作業目錄修改為待修改檔案夾的位置
n = 1 # 名稱變數
for fileName in fileList: # 遍歷檔案夾中所有檔案
pat=".+\.(jpg|png|jpeg)" # 匹配檔案名正則運算式
pattern = re.findall(pat,fileName) # 進行匹配
os.rename(fileName,(str(n)+'.'+pattern[0])) #檔案重新命名
n += 1 # 改變編號,繼續下一項
os.chdir(currentpath) # 改回程式運行前的作業目錄
sys.stdin.flush() # 重繪
print("修改后:"+str(os.listdir(path))) #輸出修改后檔案夾中包含的檔案
批量修改檔案名(全改)
這種方法,修改了檔案原本的后綴,這里主要演示的是對圖片的修改,
| 修改前 | 修改后 |
|---|---|
![]() | ![]() |
import os
path = 'F:\Temp\ZZ'
# 獲取該目錄下所有檔案,存入串列中
fileList = os.listdir(path)
n = 0
for i in fileList:
# 設定舊檔案名(就是路徑+檔案名)
oldname = path + os.sep + fileList[n] # os.sep添加系統分隔符
# 設定新檔案名
newname = path + os.sep + 'a' + str(n+1) + '.jpg'
os.rename(oldname, newname) # 用os模塊中的rename方法對檔案改名
print(oldname, '======>', newname)
n += 1
代碼有個小的注意事項,比如檔案名字原本就是a1.jpg, a3.jpg, a6.jpg這樣時,運行上述代碼會報錯,把上面的字母a改成其他的就行了,因為檔案夾下原本就有該名稱的檔案,而程式在修改名字的時候,運行程序中就會出現兩個同名檔案共存的情況,
讀取檔案下的所有檔案名
import os
# 輸出所有的檔案夾名和檔案名
path = 'F:\Temp\ZZ'
dataFileList = os.listdir(path)
for i in dataFileList:
print(i)
# 讀取特定的檔案名
txtFile = []
for filename in dataFileList:
j = filename.split('.')
if len(j)==2:
if j[1]=='txt':
txtFile.append(filename)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/348397.html
標籤:python



