python实战-读取xlsx表格批量替换文件名
文章目錄
- 一、前言
- 二、解決思路
- 三、具體代碼實(shí)現(xiàn)
- 四、總結(jié)
一、前言
???一位在校當(dāng)老師的同學(xué)遇到了一個(gè)需求,學(xué)生1寸照片是以學(xué)生姓名命名,現(xiàn)在需要重命名1寸照片,重命名為exel里對(duì)應(yīng)的學(xué)生姓名的身份證號(hào)碼,我心想這個(gè)需求很容易實(shí)現(xiàn),照片有上百近千張如果手動(dòng)修改那是很痛苦很低效的,用python就能很輕松的解決這個(gè)問(wèn)題。格式圖片如下:
二、解決思路
???學(xué)生圖片都是以名字命名,所以要讀取表格里的姓名列、證件號(hào)碼列,然后讀取目錄下圖片的名稱與表格姓名列進(jìn)行對(duì)比,對(duì)比成功就修改對(duì)應(yīng)的證件號(hào)碼。
三、具體代碼實(shí)現(xiàn)
先安裝一下pandas庫(kù),用于讀取表格數(shù)據(jù)。
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=['姓名', '證件號(hào)碼'])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("[-] 請(qǐng)檢查:", student_name,"是否存在對(duì)應(yīng)身份證號(hào)碼。", "文件路徑:", 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與相應(yīng)的庫(kù),為了解決讓他開(kāi)箱即用的問(wèn)題,用我們之前學(xué)的pyinstaller來(lái)打包成exe,這樣就可以直接運(yùn)行了。
pyinstaller -F modifyFileName.pypyinstaller教學(xué)鏈接:
https://blog.csdn.net/syl321314362/article/details/127619571最后運(yùn)行結(jié)果:
四、總結(jié)
關(guān)注我,微信搜索藝說(shuō)IT公眾號(hào),學(xué)習(xí)更多技術(shù)干貨,對(duì)你有幫助請(qǐng)點(diǎn)個(gè)贊,感謝各位帥哥美女。`
總結(jié)
以上是生活随笔為你收集整理的python实战-读取xlsx表格批量替换文件名的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 将java中数组转换为ArrayList
- 下一篇: 粒子群算法求解物流配送路线问题(pyth