python 实现目录的递归复制

线上有需求,就是根据一个文件列表,去复制到相应的目录,而且要保持目录结构。

贴代码

#!/usr/bin/env python
##coding=utf-8
print """
从存储服务器导出到临时目录
"""
import os
import shutil
from os.path import exists, abspath, dirname, isfile

des_dir = "/data"
f = open(‘file.list‘, ‘r‘)
file = f.readlines()
for i in file:
    if isfile(i.rstrip()):
        src_file_path = abspath(i.rstrip())
        src_dir_path = dirname(src_file_path)
        des_dir_full = des_dir + src_dir_path
        des_file_full = des_dir + src_file_path
        if not exists(des_dir_full):
            os.makedirs(des_dir_full)
        if not exists(des_file_full) and exists(src_file_path):
            shutil.copy(src_file_path, des_dir_full)
时间: 2024-12-29 07:38:10

python 实现目录的递归复制的相关文章

Linux文件与目录管理(复制,删除,移动)

1.cp(复制) cp [-adfilprsu]  源文件 目标文件 参数解释: -i:覆盖文件之前进行询问; -a:复制之后文件的属性不改变(包括权限.所有者及组); -r:持续递归复制,就是复制目录啦; -s:复制成链接文件(颜色是浅蓝色,文件属性为l); -l:进行硬连接(hard link)文件的创建(属性和源文件是完全一致的),-s的链接方式不会改变i-node,但硬连接就会.; -u:源文件与目标文件不同时,才进行复制操作(常用于备份); -d:复制软链接仍是软链接(若不加-d,复制

java递归复制文件及文件夹

package base; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.File; import java.io.InputStream; import java.io.OutputStream; public class copy { public static void main(String[] args) throws

python 查看目录下所有目录和文件

python查看目录下所有的子目录和子文件 python递归便利目录结构 方法1 import json, os def list_dir(path, res): for i in os.listdir(path): temp_dir = os.path.join(path, i) if os.path.isdir(temp_dir): temp = {"dirname": temp_dir, 'child_dirs': [], 'files': []} res['child_dirs

java文件和目录的增删复制

在使用java进行开发时常常会用到文件和目录的增删复制等方法.我写了一个小工具类.和大家分享,希望大家指正: package com.wangpeng.utill; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.InputStream; import java.io.PrintWriter

C#递归复制文件夹

/// <param name="sources">原路徑</param> /// <param name="dest">目標路徑</param> private void CopyFile(string sources, string dest) { if (Directory.Exists(sources)) { DirectoryInfo dinfo = new DirectoryInfo(sources);//

python 软件目录结构规范

为什么要设计好目录结构? "设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题.对于这种风格上的规范,一直都存在两种态度: 一类同学认为,这种个人风格问题"无关紧要".理由是能让程序work就好,风格问题根本不是问题. 另一类同学认为,规范化能更好的控制程序结构,让程序具有更高的可读性. 我是比较偏向于后者的,因为我是前一类同学思想行为下的直接受害者.我曾经维护过一个非常不好读的项目,其实现的逻辑并不复杂,但是却耗费了我非常长的时间去

lua中清空目录和递归创建目录

lua中的 lfs.mkdir lfs.rmdir只能针对单个目录,且lfs.rmdir不能清空文件夹 于是我想到了使用os.execute 递归创建目录如下os.execute("mkdir ooxx\\ooxx\\ooxx\\ooxx) --windowsos.execute("mkdir -p ooxx/ooxx/ooxx) --unix,linux like 清空目录如下os.execute("del ooxx\) --windowsos.execute("

python软件目录结构规范

软件目录结构规范 软件开发规范 一.为什么要设计好目录结构? 1.可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等.从而非常快速的了解这个项目. 2.可维护性高: 定义好组织规则后,维护者就能很明确地知道,新增的哪个文件和代码应该放在什么目录之下.这个好处是,随着时间的推移,代码/配置的规模增加,项目结构不会混乱,仍然能够组织良好. 二.目录组织方式 关于如何组织一个较好的Python工程目录结构,已经有一些得到了共识的目录结

Python多线程目录扫描器

Python多线程目录扫描器,代码很简单,不过也花了我很多时间. 遇到文件如下: 多线程执行问题 队列执行问题 编码问题 目录问题 自己逻辑问题 报告长官,总结完毕,以下是成果,请长官查收: # coding:utf-8 import requests import threading import Queue import sys url_list = Queue.Queue() mutex = threading.Lock() def path(url): with open("./path