Python脚本:linux上将筛选的文件夹复制到另一个目录,保存目录结构

import os,shutil

def newDir(dir_path):
    if not os.path.exists(dir_path):
        os.makedirs(dir_path)

def copydir(where_path,go_path,start_time,end_time):
    newDir(go_path)
    for brand in os.listdir(where_path):
        brand_path = os.path.join(where_path, brand)
        #print(‘brand_path‘,brand_path)
        for site in os.listdir(brand_path):
            site_path = os.path.join(brand_path,site)
            #print(‘site_path‘,site_path)
            for child in os.listdir(site_path):
                file_time = ‘-‘.join(child.split(‘-‘)[2:5])
                go_dir = go_path + ‘/‘ + brand + ‘/‘ + site#动态生成子目录
                print(file_time[:10])
                if file_time[:10] >= start_time and file_time[:10] <= end_time:
                    child_path = os.path.join(site_path,child)

                    if not os.path.isdir(child_path):
                        #print(‘file‘,child_path)
                        newDir(go_dir)
                        shutil.copy(child_path,go_dir)
                    else:
                        #print(‘dir‘,child_path)
                        #复制文件夹能够自己生成目录
                        shutil.copytree(child_path,go_dir+‘/‘+child)

#删除文件名包含2018的文件和文件夹
def deldir(path):
    for child in os.listdir(path):
        child_path = os.path.join(path,child)
        if ‘2018‘ in child:
            if not os.path.isdir(child_path):
                os.unlink(child_path)
            else:
                shutil.rmtree(child_path)

if __name__ == "__main__":
    copydir(‘/lingtian/static_files/mkcms_dev/memo/memo_htmls‘,‘/lingtian/static_files/mkcms_dev‘,‘2018-09-01‘,‘2018-09-30‘)
    #deldir(‘/lingtian/static_files/mkcms_dev‘)

我要复制的目录三层,所以有三层循环,保留了原来的目录结构

原文地址:https://www.cnblogs.com/lelexiu/p/10216837.html

时间: 2024-10-09 01:51:17

Python脚本:linux上将筛选的文件夹复制到另一个目录,保存目录结构的相关文章

如何将一个文件夹复制到另一个文件夹中并保留其权限

概要 本文分步介绍了如何将一个文件夹复制到另一个文件夹中并保留其权限.   当您使用 Windows Explorer 复制或移动文件和文件夹时,在这些文件或文件夹上设置的权限可能会发生改变.例如,当您在一个 NTFS 文件系统卷内或在两个 NTFS 卷之间复制一个文件时,Windows 2000 将把它当作一个新文件.作为一个新文件,它将具有目标文件夹的权限,您将成为"创建者所有者".    注意:您必须对目标文件夹具有"写"权限才能复制文件和文件夹.    可以

zbb20170811 linux 给用户授予文件夹权限

linux 给用户授予文件夹权限 你好, 比如一个目录dir, 你的用户名hengyang, 执行下面命令就可以赋予用户创建目录的权限. 用root用户执行: chown hengyang.hengyang dir

python脚本删除n天前文件可用于windows,linux并且支持跨平台

脚本如下: #!/usr/local/python/bin/python # -*-coding=utf8 -*- import time import os, sys # 设置删除多少天前的文件 N = 3 #要删除路径 path = r'/tmp/wry/abc' def deletefile(path): for eachfile in os.listdir(path): filename = os.path.join(path, eachfile) if os.path.isfile(f

linux根目录下各文件夹的作用

linux下的文件结构,看看每个文件夹都是干吗用的 /bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 /lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件 /sbin 系统管理命令,这里存放的是系统管理员使用的管理程序 /tmp 公用的临时文件存储点 /root 系统管理员的主目录(呵呵,特

关于Linux系统清理/tmp/文件夹的原理

转自:http://www.opsers.org/base/clean-up-on-the-linux-system-tmp-folder-you-may-want-to-know.html 我们知道,在Linux系统中/tmp文件夹里面的文件会被清空,至于多长时间被清空,如何清空的,可能大家知识的就不多了,所以,今天我们就来剖析一个这两个问题. 在RHEL\CentOS\Fedora\系统中(本次实验是在RHEL6中进行的) 先 来看看tmpwatch这个命令,他的作用就是删除一段时间内不使用

学习LINUX入门,/tmp文件夹

最近开始学习LINUX,关于/tmp文件夹, 查了些资料,/tmp文件夹是存放linux临时文件的地方,在Linux系统中/tmp文件夹里面的文件会被清空,至于多长时间被清空,如何清空的,可能就不清除了. 在CentOS5.11中,可以利用/etc/cron.daily/tmpwatch 命令来清理/tmp文件夹 [[email protected] ~]# cat /etc/cron.daily/tmpwatchflags=-umc/usr/sbin/tmpwatch "$flags"

Linux下压缩某个文件夹(文件夹打包)

tar -zcvf /home/xahot.tar.gz /xahottar -zcvf 打包后生成的文件名全路径 要打包的目录 例子:把/xahot文件夹打包后生成一个/home/xahot.tar.gz的文件.zip 压缩方法:压缩当前的文件夹 zip -r ./xahot.zip ./* -r表示递归zip [参数] [打包后的文件名] [打包的目录路径]解压 unzip xahot.zip 不解释linux zip命令的基本用法是:linux zip命令参数列表:-a 将文件转成ASCI

linux系统下修改文件夹目录权限

linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何修改Linux文件-文件夹权限.以主文件夹下的一个名为cc的文件夹为例. 下面一步一步介绍如何修改权限: 1.打开终端.输入su(没 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何修改Linux文件

albert1017 Linux下压缩某个文件夹(文件夹打包)

tar -zcvf /home/xahot.tar.gz /xahottar -zcvf 打包后生成的文件名全路径 要打包的目录例子:把/xahot文件夹打包后生成一个/home/xahot.tar.gz的文件. # tar -xf all.tar 这条命令是解出all.tar包中所有文件,-x是解开的意思 zip 压缩方法: 压缩当前的文件夹 zip -r ./xahot.zip ./* -r表示递归zip [参数] [打包后的文件名] [打包的目录路径]解压 unzip xahot.zip