[英]Rename the name of files in the folder with the help of Python Script, using name map from Excel sheet
There are many CSV files in a folder which I want it to be renamed. 文件夹中有许多CSV文件,我希望将其重命名。 There is an excel sheet which contains name of files to be renamed to folder. 有一个excel表,其中包含要重命名为文件夹的文件的名称。
The files in folder are named as 文件夹中的文件命名为
TestData_30April.csv
TestData_20April.csv
TestData_18April.csv etc
while the excel sheet contains the name as 而excel表包含名称为
0.25-TestData_30April
0.98-TestData_20April
0.33-TestData_20April etc
Also first row in the excel sheet contains Header name while row 2 on wards contains the file name to be renamed. excel表中的第一行包含Header名称,而wards上的第2行包含要重命名的文件名。
My Aim is to rename 我的目标是重命名
TestData_30April.csv
to 0.25-TestData_30April.csv
similarly for all other files as well. TestData_30April.csv
同样适用于所有其他文件的0.25-TestData_30April.csv
。
Here is the Code: 这是代码:
import os
import xlrd
#Excel Sheet containing name of files to be renamed in that folder
path="C:\\Users\\Desktop\\Test_Data\\Test_Summary.csv"
#Folder Containg all orginal file names
dir = "C:\\Users\\Desktop\\Wear_Data"
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))
list_of_filename_in_folder = [] # name of the files in the folder
list_of_filename_in_excel = [] #name of the files in excel
path_to_folder = '' # base path of folder
for name in list_of_filename_in_excel:
excel_file_name = os.path.join(path_to_folder, name,'.csv')
dir_file_name = os.path.join(path_to_folder,name.split('-')[1],'.csv' )
if os.path.exists(dir_file_name):
print('changing file name {} to {}'.format(name.split('-')[1],name))
os.rename(dir_file_name, excel_file_name)
else:
print('no file {} with name found in location'.format(name.split('-')[1]+'.csv')
Here is the error
dir_file_name = os.path.join(path_to_folder,name.split('-')[1],'.csv')
IndexError: list index out of range
try below code: 尝试以下代码:
for name in list_of_filename_in_excel:
excel_file_name = os.path.join(path_to_folder, name,'.csv')
newname = name
if '-' in name:
newname = name.split('-')[1]
dir_file_name = os.path.join(path_to_folder,newname,'.csv' )
if os.path.exists(dir_file_name):
print('changing file name {} to {}'.format(newname,name))
os.rename(dir_file_name, excel_file_name)
else:
print('no file {} with name found in location'.format(newname+'.csv')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.