python实现移动二级目录下的文件到一级目录
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)
python实现移动二级目录下的文件到一级目录的更多相关文章
- 安卓:从assets目录下复制文件到指定目录
有些时候我们直接将某些资源文件内置到apk中,便于直接使用. 1.首先将文件放置在项目/app/src/main/assets目录中 2.功能代码: public void copyFile(Stri ...
- linux拷贝多个目录下的文件到同一个目录
拷贝a目录下的a.txt和b目录下的b.txt到c目录 cp -a \ /root/a/a.txt \ /root/b/b.txt \ /root/c/
- Android复制Assets目录下的文件到指定目录
package com.android.demo; import java.io.File; import java.io.FileOutputStream; import java.io.Input ...
- Java递归列出目录下全部文件
Java递归列出目录下全部文件 /** * 列出指定目录的全部内容 * */ import java.io.*; class hello{ public static void main(String ...
- rsync+inotify 实现资源服务器的同步目录下的文件变化时,备份服务器的同步目录更新,以资源服务器为准,去同步其他客户端
测试环境: 资源服务器(主服务器):192.168.200.95 备份服务器(客户端):192.168.200.89 同步目录:/etc/test 同步时使用的用户名hadoop密码12345 实验目 ...
- 将二级目录下的文件合并成一个文件的Python小脚本
这个小程序的目的是将二级目录下的文件全部合并成一个文件(其实几级目录都可以,只要做少许改动) #coding:utf8 import sys, os def process(path): new_fi ...
- Python递归遍历目录下所有文件
#自定义函数: import ospath="D:\\Temp_del\\a"def gci (path): """this is a stateme ...
- Python开发【笔记】:获取目录下所有文件
获取文件 import os def sub_dirs(rdir): li = os.listdir(rdir) return li def main(rdir): content = sub_dir ...
- python实现指定目录下批量文件的单词计数:并发版本
在 文章 <python实现指定目录下批量文件的单词计数:串行版本>中, 总体思路是: A. 一次性获取指定目录下的所有符合条件的文件 -> B. 一次性获取所有文件的所有文件行 - ...
- Python打开目录下所有文件
用Python打开指定目录下所有文件,统计文件里特定的字段信息. 这里是先进入2017-02-25到2017-03-03目录,然后进入特定IP段目录下,最后打开文件进行统计 import os, gl ...
随机推荐
- 【JVM调优】Day04:总结前三日内容(GC+算法*4+简单回收器*3三色标记,CMS+G1+ZGC,参数个数+OOM+调优参数)
- SQL注入问题/触发器trigger/事务/事物隔离
SQL注入问题 本质:利用特殊符号的组合产生特殊的含义,从而避开正常的业务逻辑 select * from userinfo where name='jason' -- kasdjksajd' and ...
- hook 无限debugger(猿人学第十四题)
猿人学第十四题 检测太多了,debugger fiddler替换无法实现.置空也不行.推荐使用hook Function原生的构造 var func_ = Function.prototype.c ...
- 《HTTP权威指南》– 1.HTTP概述
HTTP的概念 HTTP : Hypertext Transfer Protocol 超文本传输协议 因特网上有数千种不同的数据类型,HTTP仔细地给每种要通过Web传输的对象都打上了名为MIME类型 ...
- 如何使用OpenCV+MMPEAG打开摄像头,显示的同时推送RTMP流。
注意,设置中: 代码详解: 1. char* outUrl = "rtmp://localhost/live/livestream"; 这个地址,是AMS(Adeobe Media ...
- 深度剖析 | 【JVM深层系列】[HotSpotVM研究系列] JVM调优的"标准参数"的各种陷阱和坑点分析(攻克盲点及混淆点)「 1 」
[易错问题]Major GC和Full GC的区别是什么?触发条件呢? 相信大多数人的理解是Major GC只针对老年代,Full GC会先触发一次Minor GC,不知对否?我参考了R大的分析和介绍 ...
- 使用time.Time数据类型获取时间报错
报错类型:Error 1292: Incorrect datetime value: '0000-00-00' for column 'created_at' at row 1 在添加用户到数据库时, ...
- Kali Win-KeX Win
内容: 概述 用法 开始 启动根会话 会话管理 声音支持 多屏支持 停止 概述 窗口模式下的 Win-KeX 将在单独的窗口中运行 Kali Linux 桌面会话. 窗口模式有助于在视觉上将 Wind ...
- CentOS7升级Linux内核
CentOS7升级Linux内核 什么是Linux内核 虽然时候使用 Linux 来表示整个操作系统,严格地说,Linux 只是个内核,而发行版的操作系统是一个完整功能的系统,它建立在内核之上,具有各 ...
- Springboot启动时加载
@Component public class SpringBootInitialization1 implements ServletContextListener { @Override publ ...