自定义文件夹处理函数(Python)

#encoding: utf-8
#author: walker
#date: 2017-06-15
#summary: 自定义文件夹处理函数,适用于python3.5+

import os
import shutil
import win32com.client

#清空目录
def ClearDir(dir):
    print(‘ClearDir ‘ + dir + ‘...‘)
     
    for entry in os.scandir(dir):
        if entry.name.startswith(‘.‘):
            continue
        if  entry.is_file():   
            os.remove(entry.path)    #删除文件
        else:                  
            shutil.rmtree(entry.path)    #删除目录
            
#获取目录大小
#不存在或空目录都返回0
def GetDirSize(pathdir):
    if not os.path.exists(pathdir):
        print(‘Warning: not exists %s‘ % pathdir)
        return 0
    fso = win32com.client.Dispatch(‘Scripting.FileSystemObject‘)
    folder = fso.GetFolder(pathdir)
 
    return folder.Size
    
‘‘‘
# 合并源目录到目标目录,源目录中的空目录不会被处理
# src_dir: 源目录
# dst_dir: 目标目录
# reserve_src: 是否保留源数据
# override: 是否覆盖目标目录中的文件
‘‘‘
def MergeDir(src_root, dst_root, reserve_src=True, override=True):
    if (not os.path.exists(src_root)) or (not os.path.exists(dst_root)):    #目录不存在
        raise FileNotFoundError
    for parent, dirnames, filenames in os.walk(src_root):
        for filename in filenames:
            src_file = os.path.join(parent, filename)
            dst_file = os.path.join(dst_root, src_file[len(src_root)+1:])
            if os.path.exists(dst_file) and (not override):         #如果目标文件存在且不能被覆盖
                continue
            dst_dir = os.path.dirname(dst_file)
            if not os.path.exists(dst_dir):
                os.makedirs(dst_dir)
            if reserve_src :     #保留源数据
                shutil.copyfile(src_file, dst_file)     #会覆盖目标文件
            else:
                shutil.move(src_file, dst_file)
    if not reserve_src:
        shutil.rmtree(src_root)     #删除源根目录

相关链接:

1、pywin32下载

2、Python文件(夹)基本操作

*** walker ***

时间: 2024-11-03 20:53:24

自定义文件夹处理函数(Python)的相关文章

Windows下使用创建多层文件夹 SHCreateDirectoryEx 函数需要注意的问题

1.在使用SHCreateDirectoryEx函数创建多层文件夹的过程中,发现在文件夹路径中,只能使用\\而不能使用/,否则将创建文件夹失败. 2.下面为在MFC中使用的代码片段 CString new_path = "C:/abc/d/e"; //SHCreateDirectoryEx函数必须使用\\,不能使用/ new_path.Replace("/", "\\"); //判断是否存在该文件夹 if (!PathIsDirectory(ne

matlab添加当前文件夹到函数搜索目录

pwd表示当前路径p = genpath(folderName) 返回一个包含路径名称的字符向量,该路径名称中包含 folderName 以及 folderName 下的多级子文件夹. addpath(genpath(pwd)) 将当前文件夹下的所有文件夹都包括进调用函数的目录 获取当前文件夹的代码: currentFolder = pwd; disp(currentFolder); 原文地址:https://www.cnblogs.com/yibeimingyue/p/10054705.htm

解决软件安装无法自定义文件夹,自动安装在C盘 (Windows系统)

其实就是软链接的简单应用 1.软件已经自动安装 2.完全退出当前软件 3.通过软件图标的属性找到其实际的安装目录 4.进入该软件的安装目录 5.将该软件整个剪切(你没有看错)到指定文件夹(自定义的安装路径) 6.用管理员模式打开CMD指令 7.输入 mklink /d "C:\Users\fakeuser\AppData\Roaming\uTools" "D:\fakepath\uTools", 回车(记得替换路径)第一个路径是自动安装在C盘的路径,后路径是用户自定

Java向自定义文件夹中写入文件

File file = new File("E://rawSpeechRecordData//"); File newFile = null; if (!file.exists()) { file.mkdir(); if (file.isDirectory()) { SimpleDateFormat format = new SimpleDateFormat( "yyyyMMddHHmmss"); String date = format.format(new Da

用 OUTLOOK VBA 生成 自定义文件夹 邮件列表

Option Explicit Sub TestFolder() 'Dim outlookapp, myitem, myfolder 'Dim mailcounts As Integer ' ' 'Set outlookapp = CreateObject("outlook.application") ' Set myitem = outlookapp.Application.GetNamespace("mapi") ' Set myfolder = myitem.

python sftp.get 同步远程文件夹 实践二

主要用途,从本机获取远端机器的文件夹 #!/usr/bin/python    import pexpect import paramiko   import os import sys import time import multiprocessing import datetime import crash_on_ipy from stat import S_ISDIR    ip_list = [] #room_id = sys.argv[1] cur_time = datetime.d

python列出一个文件夹及其子目录的所有文件

>>> import os >>> for i in os.walk("."): ...     print i[0],"\n##",i[1],"\n##",i[2] ...  .                             #当前目录 ## ['fa', 'out']              #当前目录中的子目录       ## ['meta_rna.sh', 'nohup.out', 'lo

Asp.Net文件和文件夹操作大全

  /// <summary>        /// 创建文件夹        /// </summary>        /// <param name="Path"></param>        public static void FolderCreate(string Path)        {            // 判断目标目录是否存在如果不存在则新建之            if (!Directory.Exists

matlab从文件夹名中获得该文件夹下所图像文件名

function [s,nameC]=get_FileNameFromFolderPath(path) % 函数调用:[s,nameC]=get_FileNameFromFolderPath(path) % 函数功能:从文件夹名中获得该文件夹下所图像文件名 % 函数输入:path 为文件夹路径 % 函数输出:s 表示状态,当为0时表示正确 % nameC 表示获得的图像名的胞体cell % 函数历史:v0.0 @2013-01-27 created by Aborn cmd = sprintf(