-
問題描述
遇到一個問題,需要在一個文件夾裏面填充許多文件,同時對填充的文件後綴名有一定的要求(只需要更改後綴名,不在意是否可用)。完成填充以後,發現許多文件的後綴名不符合要求,手動更改吧,耗時耗力又low,本着人生苦短,我用Python的精神,寫了個小腳本。
-
解決方法
直接上代碼,代碼用到的是遞歸思想:
#!/usr/bin/python
# -*- coding:utf8 -*-
import os
import random
names = ['.doc', '.pdf', '.docx', '.txt', '.exe', '.zip', '.XLS'] # 需要隨機替換的後綴名列表
def test(path):
files = os.listdir(path) # 獲取當前目錄的所有文件及文件夾
for file in files:
try:
file_path = os.path.join(path, file) # 獲取絕對路徑
if os.path.isdir(file_path): # 判斷是否是文件夾
test(file_path) # 如果是文件夾,就遞歸調用自己
else:
print(file_path)
extension_name = os.path.splitext(file_path) # 將文件的絕對路徑中的後綴名分離出來
print(extension_name)
os.rename(file_path, extension_name[0] + names[random.randint(0, (len(names) - 1))]) # 對文件進行重命名
except:
continue # 可能會報錯,所以用了try-except,如果要求比較嚴格,不需要報錯,就刪除異常處理,自己調試
test(r'E:\1')