使用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
- 把多個資料夾中的檔案批量放到一個資料夾
- Python求取資料夾內的檔案數量、子資料夾內的檔案數量Python
- 批量提取資料夾內檔名
- Python3 - 獲取資料夾中的檔案列表Python
- python中按照資料夾中檔案的排列順序讀取檔案內容Python
- python 如何刪除資料夾下的所有檔案和子資料夾?Python
- 用Java程式碼批量重新命名檔案Java
- linux|批量建立檔案、資料夾或刪除——萬用字元Linux字元
- win10資料夾中怎樣批量獲取所有檔名稱_win10批量提取資料夾內檔名的方法Win10
- 不能重新命名檔案及不能刪除檔案和資料夾許可權設定
- [python] 資料夾所有檔案讀取,正則化,json使用PythonJSON
- 批量新建資料夾並命名的辦法 如何批量新建很多資料夾
- IDEA中的.iml檔案和.idea資料夾Idea
- Linux shell 根據時間批量刪除指定資料夾下的檔案Linux
- .gitignore 在已忽略資料夾中不忽略指定檔案、資料夾...Git
- 畸形檔案 資料夾
- 使用libzip壓縮檔案和資料夾
- python列出資料夾所有檔案有哪些方法?Python
- Linux中隱藏檔案與資料夾Linux
- 使用C#選擇資料夾、開啟資料夾、選擇檔案C#
- 快速修改檔名稱的方法,自動批量給檔案重新命名
- 對pdf檔案批量重新命名,便於合併
- 大量資料夾批次重新命名的操作
- git的gitignore檔案排除資料夾和檔案Git
- windows10如何對多個檔案重新命名_windows10批量重新命名檔案的方法Windows
- 讀取資料夾檔案
- win10為什麼檔案不能重新命名_win10資料夾不能重新命名如何解決Win10
- Ubuntu下(跨機)檔案、資料夾的複製、刪除、重新命名、移動、備份Ubuntu
- C# 將資料夾中檔案複製到另一個資料夾C#
- 【轉】[C#] 重新命名資料夾C#
- Python科研武器庫 - 檔案/路徑操作 - 判斷檔案或資料夾Python
- win10批量檔案改名方法 win10系統下如何批量重新命名檔案Win10
- Qt 選擇資料夾、建立資料夾以及建立檔案QT
- 使用JSZip實現在瀏覽器中操作檔案與資料夾JS瀏覽器
- Centos8中如何更改資料夾中多個檔案的副檔名CentOS
- 資料夾裡的檔案怎麼設定跟外資料夾同名