????????本文代码主要有两个功能:
? ? ? ? (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、修改后的结果?
|