首页 > 编程语言 >python实现移动二级目录下的文件到一级目录

python实现移动二级目录下的文件到一级目录

时间:2022-12-07 16:35:58浏览次数:79  
标签:join 一级 python work path os 目录 cur

python实现移动二级目录下的文件到一级目录

import os
import shutil
import sys


def move_to_work_folder(work_path, cur_path):
    """
    将work_folder下的所有子目录中的文件移到根目录中:
    :param work_path: 当前工作目录
    :param cur_path: 文件所在目录
    :return:
    """
    for filename in os.listdir(cur_path):
        if os.path.isfile(os.path.join(cur_path, filename)):
            shutil.move(os.path.join(cur_path, filename), os.path.join(work_path, filename))
        elif os.path.isdir(os.path.join(cur_path, filename)):
            move_work_folder(work_path, os.path.join(cur_path, filename))
        else:
            sys.exit("Should never reach here.")
    # remove empty folders
    if cur_path != work_path:
        os.rmdir(cur_path)


def move_to_up_folder(subpath, work_path, same_dirs):
    """
    将工作目录中的二级子目录下的文件或目录移到当前工作目录,并删除旧的二级子目录内容。
    :param subpath:二级目录
    :param work_path:当前工作目录
    :param same_dirs:工作目录下相同目录名称
    :return:
    """
    # 确认工作目录下是否存在相同目录
    same_dir_path = os.path.join(work_path, same_dirs)
    if os.path.exists(same_dir_path):
        print("工作目录中存在相同目录: {}".format(same_dir_path))
        # 若存在相同目录,拷贝当前二级目录的子目录到工作目录下同名目录中
        for thirdir in os.listdir(subpath):
            shutil.move(os.path.join(subpath, thirdir), same_dir_path)
        os.rmdir(subpath)
    else:
        shutil.move(subpath, work_path)


if __name__ == '__main__':
    root_path = os.getcwd()
    for subdirname in os.listdir(root_path):
        # 遍历当前文件夹下的二级目录名
        if os.path.isdir(os.path.join(root_path, subdirname)):
            # 得到当前文件夹下的二级目录完整路径
            subdirpath = os.path.join(root_path, subdirname)
            # 遍历二级目录下的文件
            for name in os.listdir(subdirpath):
                # 导入二级目录下的文件、当前工作目录的完整路径到move_to_up_folder函数中
                move_to_up_folder(os.path.join(subdirpath, name), root_path, name)
            os.rmdir(subdirname)

标签:join,一级,python,work,path,os,目录,cur
From: https://www.cnblogs.com/f-carey/p/16963489.html

相关文章

  • 目录
    目录Unity相关Unity相关0001.unity自定义类使用协程--自身不继承Mono......
  • Python模块pathlib操作文件和目录操作总结
    前言目前大家常用的对于文件和操作的操作使用 ​​os.path​​ 较多,比如获取当前路径​​os.getcwd()​​,判断文件路径是否存在​​os.path.exists(folder)​​ 等等。......
  • 力扣540(java&python)-有序数组中的单一元素(中等)
    题目:给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。请你找出并返回只出现一次的那个数。你设计的解决方案必须满足O(logn)时间复......
  • Python 日志记录-loguru
    Python日志记录-loguru使用logging模块时用python写代码时,logging模块最基本的几行配置,如下:importlogginglogging.basicConfig(level=logging.INFO,format='%(ascti......
  • python字符串常用方法汇总
    常用方法如下:str="mynameis{name}andmyageis{age}"#统计字符串的长度print(len(str))#格式化输出也可当切片用的方式print(str.format(name="ming",ag......
  • 【Linux】Linux的文件目录
    1.Linux文件Linux系统中一切皆文件2.Linux目录结构/是指根目录,文件系统的入口就是/,所有的目录、文件、设备都在/之下~是当前用户的主目录:如果是root用户就是/root/目......
  • 使用python opencv延时摄影
    以下内容和源码使用openai的chatGPT生成。下面是一个示例代码,它使用OpenCV库在Python中实现这个功能。请注意,这个程序需要您先安装OpenCV库。我们设置了摄像头编......
  • CSV__04--python使用迭代器读取csv文件出现读取结果为空的解决办法
    1迭代器的概念迭代器(iterator)有时又称光标(cursor)是程序设计的软件设计模式,可在容器对象(container,例如链表或数组)上遍访的接口。2迭代器的特点强制性:必须将元素从迭代......
  • Python爬虫实战,requests模块,Python爬取网易云歌曲并保存本地
    前言今天给大家简单演示的爬取了一下某易云歌曲的排行榜信息,最后将音乐保存到本地开发工具Python版本:3.6.4相关模块:requests模块re模块os模块环境搭建安装Pyth......
  • 目录(ASP.NET Core in Action, 2nd Edition)
    第一部分开始使用ASP.NETCore第1章开始使用ASP.NETCore1.1ASP.NETCore简介1.2何时选择ASP.NETCore1.3ASP.NETCore如何工作?1.4你将在本书中学到什么第2章创......