遍歷方式更改檔名
import os
import sys
# 定義一個名字叫做rename的函式
def rename(filePath):
"""
批次重新命名指定路徑下的'.dbf', '.prj', '.shp', '.shx'格式的檔案,重新命名格式:檔案_資料夾名字,
並刪除'.sbn', '.sbx', '.xml'格式的檔案
:param filePath: 資料夾的路徑
:return:
"""
# 檔案篩選條件
condition1 = ('.dbf', '.prj', '.shp', '.shx','.txt')
condition2 = ('.sbn', '.sbx', '.xml')
#列表
name = ['one','two','three']
flag = 0
# os.walk 查詢檔案
for root, dirs, files in os.walk(filePath):
# 資料夾名字
# mark = root.split('\\')[-1]
# for迴圈遍歷檔名字
for fileName in files:
mark = name[flag]
flag = flag + 1
if fileName != sys.argv[0]:
if fileName.endswith(condition1):
os.rename(os.path.join(root, fileName), os.path.join(root, mark + '.' + fileName.split('.')[-1]))
print(fileName, '已經重新命名成功了,乖乖,新名字是:', mark + '.'
+ fileName.split('.')[-1])
if fileName.endswith(condition2):
delFileName = os.path.join(root, fileName)
os.remove(delFileName)
print(delFileName, '已經成功被移除。')
if __name__ == '__main__':
filePath = r'C:\Users\Windows11\Desktop\test'
rename(filePath)