• 给每个文件都建立一个文件夹 with Python


    需求

    有时文件比较多,比如50个SQL文件都在一个目录中,需要将他们每一个都建立一个文件夹,每个文件夹里面放入一个SQL文件,若手动建立文件夹太麻烦,因此使用 Python 脚本自动化实现。

    代码

    import os
    from shutil import move
    def file_each_dir(dir_path,dir_names):
        """将指定目录的文件,分别建立文件夹转移到 `dir_names` 列出的文件夹名称中
    
        Args:
            dir_path (str): 文件所在的文件夹
            dir_names (List): 要建立的文件夹名称列表
        """
        files = os.listdir(path=dir_path)
        assert len(files)==len(dir_names), "文件夹数量和文件数据不相等"
        lenght_files = len(files)
        for i in range(lenght_files):
            des_dir_path = dir_path + "/" + dir_names[i]
            os.mkdir(des_dir_path)
            src_file_path = dir_path + "/" + files[i]
            des_file_path = des_dir_path + "/" + files[i]
            move(src_file_path, des_file_path)
            print(src_file_path + " -> " + des_file_path)
    

    测试

    当前文件目录结构是:

    dir_sql/
    ├── test1.sql
    ├── test2.sql
    ├── test3.sql
    └── test4.sql
    

    想要将这些SQL文件分别放入四个文件夹中:

    if __name__ == '__main__':
        to_dir = './dir_sql'
        dir_names=['1','2','3','4']
        file_each_dir(to_dir,dir_names=dir_names)
    

    第一个参数是这些文件当前在哪个文件夹中,第二个参数是文件的列表,必须要指定,是指定的 1-4 四个数字作为新建的文件夹名字。运行后结构是:

    dir_sql/
    ├── 1
    │   └── test1.sql
    ├── 2
    │   └── test2.sql
    ├── 3
    │   └── test3.sql
    └── 4
        └── test4.sql
    
  • 相关阅读:
    [Laravel] mac下通过 homestead 搭建环境 到运行项目
    Mac下Laravel的Homestead环境配置
    Window10 下安装 Laravel / Homestead 视频
    Windows 10下Laravel的开发环境安装及部署(Vagrant + Homestead)
    Apache 调用不同的 PHP 版本
    inux系统用户名和全名有什么区别
    oracle 学习day01
    rpm
    Linux下可以使用ps命令来查看Oracle相关的进程
    oracle 建用户
  • 原文地址:https://www.cnblogs.com/heenhui2016/p/13803817.html
Copyright © 2020-2023  润新知