zoukankan      html  css  js  c++  java
  • python3 os模块

    import os 
    
    
    """目录操作"""
    os.makedirs("a/b/c")  # 创建多级目录(推荐使用)
    os.removedirs("a/b/c")  # 删除多级目录(不推荐使用)
    os.mkdir("aa")  # 创建一级目录
    os.rmdir("aa")  # 删除一层目录
    os.listdir("./")  # 列出指定目录下的文件和文件夹
    os.getcwd()  # 获取当前工作目录
    os.chdir("aaa")  # 切换工作目录
    os.chdir("../")  
    os.path.join("a", "b") # 路径拼接 'a\b'
    os.path.basename("a/b/c")  # 返回最后一个/后面的内容 'c'
    os.path.basename("a/b/c.txt")  # 返回最后一个/后面的内容 'c.txt'
    os.path.dirname("a/b/c")  # 返回除最后一个/后面内容外的部分 'a/b'
    os.path.dirname(os.path.dirname("a/b/c"))  # 'a'
    os.path.split("a/b/c")  # 路径分隔('a/b', 'c')
    import os 
    
    
    """文件操作"""
    open("a.txt", "w", encoding="utf-8").close()  # 创建一个空文件
    os.rename("a.txt", "a-new.txt")  # 文件重命名
    os.remove("a-new.txt")  # 删除文件
    os.path.exists("a.txt")  # 判断文件或目录是否存在
    os.path.isfile("a.txt")  # 判断是否是文件
    os.path.isdir("a.txt")  # 判断是否是目录
    os.path.isabs("a.txt")  # 判断是否是绝对路径 
    os.path.abspath("a.txt")  # 文件的绝对路径 'G:\python28\code\day05\整理笔记\a.txt'
    os.path.getatime("b.txt")  # 文件最后访问的时间戳 
    os.path.getctime("b.txt")  # 文件最后修改的时间戳 
    os.path.getsize("b.txt")  # 文件大小,单位字节
    os.stat("b.txt")  # 文件信息
    os.stat_result(st_mode=33206, st_ino=14636698789298201, st_dev=2049124156, st_nlink=1, st_uid=0, st_gid=0, st_size=33, st_atime=1574923631, st_mtime=1574923730, st_ctime=1574923631)

    import os
    
    
    os.system("dir")  # 执行命令,无返回值
    os.popen("dir").read()  # 执行命令,有返回值
    os.sep  # 系统分隔符 '\'
    import os
    
    
    def list_dir(path): 
        """
        遍历目录下所有的文件
        """
        lst = os.listdir(path)
        for name in lst:
            file_path = os.path.join(path, name)
            if os.path.isdir(file_path):
                list_dir(file_path)
            else:
                print(file_path)
        
    list_dir("./")
    ./.ipynb_checkpoints整理笔记-checkpoint.ipynb
    ./.ipynb_checkpoints练习题-checkpoint.ipynb
    ./aaa1.txt
    ./aaa2.txt
    ./aaabba1.txt
    ./aaabba2.txt
    ./abca111.txt
    ./b.txt
    ./安装包.exe
    ./整理笔记.ipynb
    ./练习题.ipynb

    import os
    
    
    def list_dir(path, layer): 
        """
        遍历目录下所有的文件和目录
        """
        lst = os.listdir(path)
        for name in lst:
            file_path = os.path.join(path, name)
            if os.path.isdir(file_path):
                print((layer-1)*"	" + name)
                list_dir(file_path, layer+1)
            else:
                print((layer-1)*"	" + name)
        
    list_dir("./", 1)
    .ipynb_checkpoints
    	整理笔记-checkpoint.ipynb
    	练习题-checkpoint.ipynb
    88
    aaa
    	1.txt
    	2.txt
    	bbb
    		a1.txt
    		a2.txt
    abc
    	a111.txt
    b.txt
    安装包.exe
    整理笔记.ipynb
    练习题.ipynb

    import os
    
    
    def unit_convert(size):
        """
        字节、KB、MB、GB单位转换
        """
        if size > 1024*1024*1024:
            return format(size/1024/1024/1024, ".2f")+"GB"
        elif size > 1024*1024:
            return format(size/1024/1024, ".2f")+"MB"
        elif size > 1024:
            return format(size/1024, ".2f")+"KB"
        else:
            return str(size)+"B"
        
    
    
    def getPathSize(path): 
        """
        统计目录的总大小
        """
        total_size = 0
        def get_size(path):         
            nonlocal total_size
            lst = os.listdir(path)
            for name in lst:
                file_path = os.path.join(path, name)
                if os.path.isdir(file_path):
                    total_size += os.path.getsize(file_path)
                    print(file_path)
                    get_size(file_path)
                else:
                    print(file_path)
                    total_size += os.path.getsize(file_path)
            return total_size
        return get_size(path)
          
       
    print(unit_convert(getPathSize("./")))
    ./.ipynb_checkpoints
    ./.ipynb_checkpoints整理笔记-checkpoint.ipynb
    ./.ipynb_checkpoints练习题-checkpoint.ipynb
    ./88
    ./aaa
    ./aaa1.txt
    ./aaa2.txt
    ./aaabb
    ./aaabba1.txt
    ./aaabba2.txt
    ./abc
    ./abca111.txt
    ./b.txt
    ./安装包.exe
    ./整理笔记.ipynb
    ./练习题.ipynb
    29.95KB

    import os
    
        
    os.walk("./")  # 返回一个生成器
    print(list(os.walk("./")))  # [root, [文件夹1,文件夹2...], [文件1,文件2...]]
    [('./', ['.ipynb_checkpoints', '88', 'aaa', 'abc'], ['b.txt', '安装包.exe', '整理笔记.ipynb', '练习题.ipynb']), ('./.ipynb_checkpoints', [], ['整理笔记-checkpoint.ipynb', '练习题-checkpoint.ipynb']), ('./88', [], []), ('./aaa', ['bbb'], ['1.txt', '2.txt']), ('./aaa\bbb', [], ['a1.txt', 'a2.txt']), ('./abc', [], ['a111.txt'])]

    import os
    
    
    def getPathSize(path): 
        """
        统计目录的总大小
        """
        total_size = 0
        gen = os.walk(path)  # 拿到一个生成器
        for root,  dirs, files in gen:
            for d in dirs:            
                dir_path = os.path.join(root, d)
                total_size += os.path.getsize(dir_path)
                print(dir_path)
            for f in files:
                file_path = os.path.join(root, f)
                total_size += os.path.getsize(file_path)
                print(file_path)
        return total_size
    
    print(unit_convert(getPathSize("./")))
    ./.ipynb_checkpoints
    ./88
    ./aaa
    ./abc
    ./b.txt
    ./安装包.exe
    ./整理笔记.ipynb
    ./练习题.ipynb
    ./.ipynb_checkpoints整理笔记-checkpoint.ipynb
    ./.ipynb_checkpoints练习题-checkpoint.ipynb
    ./aaabb
    ./aaa1.txt
    ./aaa2.txt
    ./aaabba1.txt
    ./aaabba2.txt
    ./abca111.txt
    30.05KB
  • 相关阅读:
    解决ListView异步加载数据之后不能点击的问题
    android点击实现图片放大缩小 java技术博客
    关于 数据文件自增长 的一点理解
    RAC 实例不能启动 ORA1589 signalled during ALTER DATABASE OPEN
    Linux 超级用户的权利
    RAC 实例 迁移到 单实例 使用导出导入
    Shell 基本语法
    Linux 开机引导与关机过程
    RAC 实例不能启动 ORA1589 signalled during ALTER DATABASE OPEN
    Oracle RAC + Data Guard 环境搭建
  • 原文地址:https://www.cnblogs.com/lilyxiaoyy/p/10795012.html
Copyright © 2011-2022 走看看