python实战-读取xlsx表格批量替换文件名
生活随笔
收集整理的這篇文章主要介紹了
python实战-读取xlsx表格批量替换文件名
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、前言
- 二、解決思路
- 三、具體代碼實現
- 四、總結
一、前言
???一位在校當老師的同學遇到了一個需求,學生1寸照片是以學生姓名命名,現在需要重命名1寸照片,重命名為exel里對應的學生姓名的身份證號碼,我心想這個需求很容易實現,照片有上百近千張如果手動修改那是很痛苦很低效的,用python就能很輕松的解決這個問題。格式圖片如下:
二、解決思路
???學生圖片都是以名字命名,所以要讀取表格里的姓名列、證件號碼列,然后讀取目錄下圖片的名稱與表格姓名列進行對比,對比成功就修改對應的證件號碼。
三、具體代碼實現
先安裝一下pandas庫,用于讀取表格數據。
pip isntall pandas直接上代碼:
import pandas as pd import os import re import argparse# 獲取目錄下的excel文件 def getExcel(dataPath, excelPath):for maindir, subdir, file_name_list in os.walk(excelPath):for filename in file_name_list:data = {}apath = os.path.join(maindir, filename)file_path = apath.replace("\\", "/")df = pd.read_excel(file_path)df = pd.DataFrame(df, columns=['姓名', '證件號碼'])for i in df.values:data[i[0]] = i[1]print(data)modifyName(data, dataPath)# 修改文件名 def modifyName(data, dataPath):try:for maindir, subdir, file_name_list in os.walk(dataPath):for filename in file_name_list:try:apath = os.path.join(maindir, filename)file_path = apath.replace("\\", "/")student_name = filename.strip(".jpg")p = re.compile(r"(.*)/")filepath = p.match(file_path).group(1)new_file_name = filepath + "/" + \data[student_name] + ".jpg"print("[+] 修改成功", file_path, new_file_name)os.rename(file_path, new_file_name)except Exception as e:print("error:", e)print("[-] 請檢查:", student_name,"是否存在對應身份證號碼。", "文件路徑:", file_path)continueexcept Exception as e:print("error:", e)if __name__ == "__main__":example_text = """python modifyFileName.py -d d:\data -e d:\excel"""try:parser = argparse.ArgumentParser(description=example_text, formatter_class=argparse.RawTextHelpFormatter)parser.add_argument("-d", "--data", required=True)parser.add_argument("-e", "--excel", required=True)args = parser.parse_args()data = args.dataexcel = args.excelgetExcel(data, excel)except:pass???直接給代碼的話他還需要安裝python與相應的庫,為了解決讓他開箱即用的問題,用我們之前學的pyinstaller來打包成exe,這樣就可以直接運行了。
pyinstaller -F modifyFileName.pypyinstaller教學鏈接:
https://blog.csdn.net/syl321314362/article/details/127619571最后運行結果:
四、總結
關注我,微信搜索藝說IT公眾號,學習更多技術干貨,對你有幫助請點個贊,感謝各位帥哥美女。`
總結
以上是生活随笔為你收集整理的python实战-读取xlsx表格批量替换文件名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 将java中数组转换为ArrayList
- 下一篇: 粒子群算法求解物流配送路线问题(pyth