写一个程序,用b列读取唯一值在当前目录创中建文件夹,将当前目录中a列同名文件(max,mtl,obj三种格式)移动到对应的b列目录中
时间: 2024-12-10 13:43:18 浏览: 12
为了实现这个功能,你需要使用Python编程语言,因为其丰富的文件操作库和脚本能力。首先确保你已经安装了`os`、`shutil`和`pandas`模块,如果没有,可以使用下面的命令安装:
```bash
pip install pandas
```
然后,编写一个Python程序,它会按照描述的操作流程执行。这里是一个基础示例,假设你已经有了名为`data.csv`的数据文件,其中包含两列`a`和`b`:
```python
import os
import shutil
import pandas as pd
# 读取csv数据
df = pd.read_csv('data.csv')
# 确保工作目录是csv文件所在的目录
current_dir = os.path.dirname(os.path.abspath(__file__)) if '__file__' in locals() else '.'
df['b_path'] = df['b'].apply(lambda x: os.path.join(current_dir, x))
# 创建缺失的文件夹
for b_value in df['b'].unique():
folder_path = os.path.join(current_dir, b_value)
if not os.path.exists(folder_path):
os.makedirs(folder_path)
# 检查并移动文件
for index, row in df.iterrows():
file_name = os.path.splitext(row['a'])[0] # 提取文件名
file_exts = ['.max', '.mtl', '.obj'] # 需要移动的文件扩展名列表
source_file = os.path.join(current_dir, row['a'])
target_folder = os.path.join(row['b_path'], file_name) + '.'
for ext in file_exts:
if os.path.isfile(source_file + ext): # 如果源文件存在
for ext2 in file_exts: # 避免目标文件已存在,只移动一种格式
if os.path.isfile(target_folder + ext2):
break
else:
shutil.move(source_file + ext, target_folder + ext) # 移动文件
# 结果检查
print("所有文件已移动到对应目录。")
阅读全文