excel中有name1和name2两列,遍历一个文件夹下的所有子文件夹,如果子文件夹的名字在name1中,则rename子文件夹名为对应的name2列中的值,如果不在name1列中则不用重命名,给出python代码
时间: 2024-12-28 15:33:39 浏览: 8
在Python中,你可以使用`os`模块来遍历文件夹,`pandas`处理Excel数据,以及`shutil`库来进行文件重命名。以下是一个基本的示例代码:
```python
import os
import pandas as pd
from shutil import rmtree, move
# 读取Excel数据
df = pd.read_excel('your_file.xlsx') # 替换为你的Excel文件路径
file_names_col = df.columns.get_loc('name1') # 获取'name1'列的索引
new_names_col = df.columns.get_loc('name2')
# 遍历指定目录及其所有子目录
def rename_folder(path):
for folder_name in os.listdir(path):
if folder_name in df['name1'].values:
new_folder_name = df[df['name1'] == folder_name]['name2'].iloc[0] # 获取对应的新名字
old_path = os.path.join(path, folder_name)
new_path = os.path.join(path, new_folder_name)
# 如果新名字不存在或者需要移动而不是简单改名
if not os.path.exists(new_path) or not os.path.isdir(new_path):
move(old_path, new_path)
else:
print(f"{old_path} already exists with name {new_folder_name}, skipping.")
# 路径替换为你的文件夹路径
root_dir = 'your_directory' # 替换为你要操作的根目录
rename_folder(root_dir)
阅读全文