V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
krisbai
V2EX  ›  Python

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

  •  
  •   krisbai · 2017-11-26 17:46:02 +08:00 · 2128 次点击
    这是一个创建于 2545 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,需要把文件夹列表按照 excel 内的资产编号匹配,并移动到对应的目录。求思路,想用 python 来做!谢谢~
    8 条回复    2017-11-28 00:21:14 +08:00
    nyanyh
        1
    nyanyh  
       2017-11-26 20:46:02 +08:00
    我建议把 excel 里代表编号的那列导出为 csv,之后 python 读取后处理即可
    why1
        2
    why1  
       2017-11-26 21:34:35 +08:00 via Android
    命令行不行吗
    leaves7i
        3
    leaves7i  
       2017-11-27 02:20:46 +08:00 via Android
    造个轮子吧。
    xml123
        4
    xml123  
       2017-11-27 10:17:00 +08:00
    导出成文本,用 python 处理一下转成 shell 命令就行了
    vmebeh
        5
    vmebeh  
       2017-11-27 12:08:37 +08:00
    建议用 vba 生成批处理文件的内容
    Hzzone
        6
    Hzzone  
       2017-11-27 15:02:07 +08:00   ❤️ 1
    ```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
        7
    krisbai  
    OP
       2017-11-27 15:12:51 +08:00
    @Hzzone 谢谢大神!
    Arnie97
        8
    Arnie97  
       2017-11-28 00:21:14 +08:00 via Android
    虽然你问的是 Python,不过这个问题 Excel 徒手一分钟搞定😂

    1. 表头之类没用的扔掉,只留两列:源路径和目标路径
    2. 最前面插一列,填充柄填上 move
    3. 另存工作表,类型 CSV,文件名 "xxx.bat"(引号也要输入)
    4. 在文件 xxx.bat 上右键选编辑,用记事本替换逗号为空格
    5. 运行 xxx.bat
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5868 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 02:19 · PVG 10:19 · LAX 18:19 · JFK 21:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.