我要重命名的文件夹中有100个CSV文件。有一个Excel工作表,其中包含要重命名的文件夹中文件的名称。
示例:
让我们考虑一个名为TestData_30April.csv
的CSV文件,它位于一个文件夹中。我希望将其重命名为0.25-TestData_30April.csv
。 X列中的excel工作表包含要重命名的名称(0.25-TestData_30April.csv)
。
同样,Excel工作表包含要重命名的文件夹中所有文件的名称。
代码如下:
import os
import xlrd
#Excel Sheet containing name of files to be renamed in that folder
path="C:\\Users\\Desktop\\Test_Data\\Test_Summary.xlsx"
wb = xlrd.open_workbook(path)
sheet = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
#In excel sheet column X or col_values(23) contains the file name to be renamed
print(sheet.col_values(23))
#Below line contains all the csv sheets
os.rename('C:\\Users\\Desktop\\AllData',sheet.col_values(23))
我希望将文件夹中的文件重命名为Excel工作表中的名称。如何将数据从Excel工作表映射到该文件夹,以便进行重命名?
答案 0 :(得分:2)
遍历列中的所有值。从名称中删除数字前缀以获取原始名称,然后重命名。
dir = r'C:\Users\Desktop\AllData'
new_names = sheet.col_values(23)
for new_name in sheet.col_values(23):
if '-' in new_name:
old_name = new_name.split("-")[1]
if os.path.isfile(os.path.join(dir, old_name)):
os.rename(os.path.join(dir, old_name), os.path.join(dir, new_name))