Изменить имена файлов CSV в папке - PullRequest
1 голос
/ 02 мая 2019

В папке есть сотни файлов CSV, которые я хочу переименовать. Существует лист Excel, содержащий имена файлов из папки, которую нужно переименовать.

Пример:
Давайте рассмотрим один CSV-файл с именем TestData_30April.csv, который находится в папке. Я хочу, чтобы он был переименован в 0.25-TestData_30April.csv. Лист Excel в столбце X содержит имя, которое необходимо переименовать (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 Ответ

2 голосов
/ 02 мая 2019

Перебрать все значения в столбце.Удалите префикс номера из имени, чтобы получить исходное имя, затем выполните переименование.

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))
...