文件夹中有很多CSV文件,我希望将其重命名。有一个Excel工作表,其中包含要重命名为文件夹的文件的名称。
文件夹中的文件命名为
TestData_30April.csv
TestData_20April.csv
TestData_18April.csv etc
而Excel工作表中的名称为
0.25-TestData_30April
0.98-TestData_20April
0.33-TestData_20April etc
Excel工作表中的第一行还包含标头名称,而病房中的第二行包含要重命名的文件名。
我的目标是重命名
对于所有其他文件,也从 TestData_30April.csv
到0.25-TestData_30April.csv
。
以下是代码:
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
答案 0 :(得分:0)
尝试以下代码:
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')