我要重命名的文件夹中有许多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
我的目标是重命名
从“ TestData_30April.csv”到“ 0.25-TestData_30April.csv”
类似
"TestData_20April.csv" to "0.98-TestData_20April" etc.
我的问题定义与此类似。这是链接“使用Python,使用Excel中的名称映射重命名文件”
请帮助我是python的新手。
这是守则,它不起作用
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))
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))
请帮助我成为python的新手
答案 0 :(得分:2)
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 project location'.format(name.split('-')[1]+'.csv')
答案 1 :(得分:0)
excel工作表中的文件名不包含扩展名.csv,因此 if (result->IsPromise()) {
Local<Promise> promise = result.As<Promise>();
if (promise->HasHandler()) {
while (promise->State() == Promise::kPending) {
Isolate::GetCurrent()->RunMicrotasks();
}
if (promise->State() == Promise::kRejected) {
Nan::ThrowError(promise->Result());
}
else
{
// ... procses promise->Result() ...
}
}
}
是不带扩展名的文件名,而old_name
检查完整文件名,并且仅在文件名和扩展名都为true时返回true匹配。
将扩展名附加到Excel工作表中,然后重试,它应该可以正常工作。
os.path.isfile