本文代码主要有两个功能:
(1)使用 python 读取 .csv/.xlsx/.xls 文件中的数据;
(2)使用读取到的数据批量修改文件夹下的文件名;
1、文件数据形式
2、待修改文件
3、python 代码实现
import os import shutil import pandas as pd def change_xlsx(filename, filePath): """ 修改 .xlsx 和 .xls 文件名 :param filename: 待修改文件路径 :param root: 文件修改后的保存路径 """ # TODO 读取 .xlsx 中的数据 data = pd.read_excel(filename, sheet_name='Sheet1') # 读取同一个表格中指定 Sheet1 中的数据,不指定时直接默认读取到这个Excel的第一个表单 # row = data.values # 读取所有数据 # row1 = data.iloc[0].values # 0表示第一行 这里读取数据并不包含表头,要注意哦! # print("读取指定行的数据:\n{0}".format(row1)) # 遍历该文件夹所有的文件,并for循环 for name in os.listdir(filePath): # 文件名加上文件夹构成绝对路径 before_file = os.path.join(filePath, name) # 获取当前文件名所在行 index = data.loc[data['oldName'] == name] # print("2=", index) # 当前文件所对应的新名称 new_name = index['newName'].values if len(new_name): # index['code'].values 为当前文件名所对应的新名称 after_file = os.path.join(filePath, new_name[0] + ".pdf") # 利用shutil.move将文件移动到原来位置(重命名的效果) shutil.move(before_file, after_file) else: break print(" .xlsx/.xls 文件修改完成!!!") def change_csv(filename, filePath): """ 修改 .csv 文件名 :param filename: 待修改文件路径 :param root: 文件修改后的保存路径 """ data = pd.read_csv(filename, index_col=False) # row = data.values # 读取所有数据 # row1 = data.iloc[0].values # 0表示第一行 这里读取数据并不包含表头,要注意哦! # print("读取指定行的数据:\n{0}".format(row1)) # 遍历该文件夹所有的文件,并for循环 for name in os.listdir(filePath): # 文件名加上文件夹构成绝对路径 before_file = os.path.join(filePath, name) # 获取当前文件名所在行 index = data.loc[data['oldName'] == name] # print("2=", index) # 当前文件所对应的新名称 new_name = index['newName'].values if len(new_name): # index['code'].values 为当前文件名所对应的新名称 after_file = os.path.join(filePath, new_name[0] + ".pdf") # 利用shutil.move将文件移动到原来位置(重命名的效果) shutil.move(before_file, after_file) else: break print(" .csv 文件修改完成!!!") if __name__ == '__main__': # 表格数据路径 filename = 'data_#2.xls' # 待修改文件路径 filePath = "F:/桌面/get/data2" if filename.find('.csv') > 0: change_csv(filename, filePath) else: change_xlsx(filename, filePath)
4、修改后的结果