使用Python批量重新命名資料夾中的檔案
使用Python批量重新命名資料夾中的檔案
目測這已經是第5次有人找我幫忙根據某個Excel中的表格名單對照片進行重新命名了!感覺有必要簡單分享一下使用Python
來批量重新命名檔案的小指令碼,先上程式碼:
# -*- coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import os
import xlrd
data = xlrd.open_workbook("name-list.xlsx")
table = data.sheets()[0]
info_dic = {}
for row_index in range(table.nrows):
info_dic[table.cell(row_index, 0).value] = table.cell(row_index, 1).value
student_names = []
lucky_students = {}
path = "C:\\Users\\Documents\\"
new_path = "C:\\Users\\Documents\\new-folder"
for file in os.listdir(path):
if os.path.isfile(os.path.join(path, file)) == True:
if file.find('.jpg') < 0:
print file
else:
student_number = file.split('.')[0]
if student_number in info_dic.keys():
student_name = info_dic[student_number]
if student_name in student_names:
student_name = student_name + '-' + str(student_names.count(student_name))
student_names.append(student_name)
new_name = student_name + '.jpg'
os.rename(os.path.join(path, file), os.path.join(new_path, new_name))
程式碼邏輯很簡單,如果看不懂上面程式碼的同學請看完我的解說再去面壁一下!其思路是這樣的:首先讀有名單的Excel表格(一般裡面會有一列姓名一列學號/工號這樣的),然後遍歷path
指定的目錄,如果該檔名中沒有.jpg
那就不是圖片檔案,忽略掉;如果是圖片檔案則查詢該圖片檔名是不是在Excel表格名單中,在的話就使用Excel表格中對應的姓名去重新命名該圖片檔案。
我在重新命名過程中遇到兩個問題,也給大家分享一下:
1. rename
函式中的路徑必須是絕對路徑,否則會出現WindowsError: [Error 2]
錯誤;
2. 如果重新命名時該檔名已經在目標路徑存在了,會出現WindowsError: [Error 183]
錯誤,這時候該怎麼處理就看自己啦,在檔名後面加上隨機字串或者時間戳或者計數什麼的都行!
相關文章
- python 批量重新命名資料夾下的影像Python
- 把多個資料夾中的檔案批量放到一個資料夾
- NodeJs批量require資料夾中的所有檔案NodeJSUI
- Python 寫了一個批量生成資料夾和批量重新命名的工具Python
- git重新命名檔案和資料夾Git
- linux[批量複製並重新命名]和[批量複製檔案到多個資料夾]Linux
- linux 檔案批量重新命名Linux
- 批量提取資料夾內檔名
- linux下批量修改檔案及資料夾所Linux
- Python資料夾與檔案的操作Python
- Python批量修改資料夾內所有json檔案中部分內容PythonJSON
- Python3 - 獲取資料夾中的檔案列表Python
- Python求取資料夾內的檔案數量、子資料夾內的檔案數量Python
- python中按照資料夾中檔案的排列順序讀取檔案內容Python
- win10資料夾中怎樣批量獲取所有檔名稱_win10批量提取資料夾內檔名的方法Win10
- 重新命名資料檔案
- Redis從檔案中批量插入資料Redis
- liunx常用命令-rm(移動檔案/資料夾、重新命名)
- python 如何刪除資料夾下的所有檔案和子資料夾?Python
- 重新命名資料夾名字
- 用Java程式碼批量重新命名檔案Java
- ORACLE 重新命名資料檔案Oracle
- 批量新建資料夾並命名的辦法 如何批量新建很多資料夾
- 不能重新命名檔案及不能刪除檔案和資料夾許可權設定
- 批量重新命名簽名好以後的檔案
- Shell 批量重新命名以“.log”結尾的檔案
- linux|批量建立檔案、資料夾或刪除——萬用字元Linux字元
- linux 批量設定資料夾755 檔案644許可權Linux
- 畸形檔案 資料夾
- linux批量替換指定資料夾中所有檔案的指定內容Linux
- TListView元件顯示資料夾中的檔案 (轉)View元件
- .gitignore 在已忽略資料夾中不忽略指定檔案、資料夾...Git
- 大量資料夾批次重新命名的操作
- windows10如何對多個檔案重新命名_windows10批量重新命名檔案的方法Windows
- 使用svn進行檔案和資料夾的忽略
- 使用C#選擇資料夾、開啟資料夾、選擇檔案C#
- C#批量重新命名檔案程式碼的實現C#
- 批量刪除空的資料夾