更改文件夹中的csv文件的名称

时间:2019-05-02 05:40:03

标签: python xlrd

我要重命名的文件夹中有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工作表映射到该文件夹​​,以便进行重命名?

1 个答案:

答案 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))