zoukankan      html  css  js  c++  java
  • 文件操作相关

    看了下经常写一个项目后就需要整个目录的树结构,还有经常需要计算文件的大小,因此在这里我就把这些写在了一个文件操作类中,方便后续使用

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # Author: Xiaobai Lei
    import os
    
    
    class HandleFile:
        """文件操作类"""
        def __init__(self, treename='tree.txt'):
            self.treename = treename
            self.tree = ""
    
        def get_file_tree(self, pathname='.', n=1):
            """得到目录树结构"""
            filename = os.listdir(pathname)
            for file in filename:
                file_path = os.path.normpath(os.path.join(pathname, file))
                if os.path.isdir(file_path):
                    file_tree = '   |' * n + '-' * 3 + file
                    self.tree += file_tree + "
    "
                    print(file_tree)
                    self.get_file_tree(file_path, n + 1)
                else:
                    file_tree = '   |' * n + '-' * 3 + file
                    self.tree += file_tree + "
    "
    
                    print(file_tree)
    
        def save_tree_file(self, pathname='.'):
            """将目录树结构写入文件中"""
            basename = os.path.basename(pathname)
            self.get_file_tree(pathname)
            with open(self.treename, 'w', encoding='utf-8') as f:
                f.write(basename+"
    ")
                f.write(self.tree)
    
        @staticmethod
        def get_file_size(pathname):
            """获取文件夹的大小"""
            dir_size = 0
            filename = os.listdir(pathname)
            for file in filename:
                file_path = os.path.normpath(os.path.join(pathname, file))
                if os.path.isdir(file_path):
                    dir_size += HandleFile.get_file_size(file_path)
                else:
                    dir_size += os.path.getsize(file_path)
            return dir_size
    
    if __name__ == '__main__':
        dir_path = r"D:软件测试知识综合编程Python\s15day30"
        obj = HandleFile()
        obj.save_tree_file(dir_path)
        size = HandleFile.get_file_size(dir_path)
        print(size)
  • 相关阅读:
    js参数自定义
    分页插件--记录
    .net mvc接收参数为null的解决方案
    c#枚举转字典或表格
    openlayers添加弹出框
    openlayers按坐标点播放
    openlayers轨迹匀速播放
    MyEclipse配置进行Hibernate逆映射
    BIO,NIO,AIO
    Git遇到的一点错误
  • 原文地址:https://www.cnblogs.com/leixiaobai/p/10899277.html
Copyright © 2011-2022 走看看