如何让文件夹内的文件按 excel 内的编号分类

2017-11-26 17:46:02 +08:00
 krisbai
如题,需要把文件夹列表按照 excel 内的资产编号匹配,并移动到对应的目录。求思路,想用 python 来做!谢谢~
2060 次点击
所在节点    Python
8 条回复
nyanyh
2017-11-26 20:46:02 +08:00
我建议把 excel 里代表编号的那列导出为 csv,之后 python 读取后处理即可
why1
2017-11-26 21:34:35 +08:00
命令行不行吗
leaves7i
2017-11-27 02:20:46 +08:00
造个轮子吧。
xml123
2017-11-27 10:17:00 +08:00
导出成文本,用 python 处理一下转成 shell 命令就行了
vmebeh
2017-11-27 12:08:37 +08:00
建议用 vba 生成批处理文件的内容
Hzzone
2017-11-27 15:02:07 +08:00
```python
import xlrd
import os
import shutil
data = xlrd.open_workbook('yourexcel.xls')
table = data.sheets()[0]
data_source = "your data source"
save_folder_path = "your target save path"
for i in rang(table.nrows):
one_row = table.row_values(i)
product_id = one_row[0]
folder_name = one_row[1]
save_path = os.path.join(save_folder_path, product_id)
source_path = os.path.join(data_source, folder_name)
if not os.path.exists(save_path):
os.mkdir(save_path)
shutil.move(source_path, save_path)
```
你提问之前请说的详细一些,你的 excel 表格的部分截图,包括你文件目录是什么样子的,上面的代码不保证能运行,你自己改改,需要安装 xlrd, `pip install xlrd`
`python your_py_file.py`
krisbai
2017-11-27 15:12:51 +08:00
@Hzzone 谢谢大神!
Arnie97
2017-11-28 00:21:14 +08:00
虽然你问的是 Python,不过这个问题 Excel 徒手一分钟搞定😂

1. 表头之类没用的扔掉,只留两列:源路径和目标路径
2. 最前面插一列,填充柄填上 move
3. 另存工作表,类型 CSV,文件名 "xxx.bat"(引号也要输入)
4. 在文件 xxx.bat 上右键选编辑,用记事本替换逗号为空格
5. 运行 xxx.bat

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/409677

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX