zoukankan      html  css  js  c++  java
  • python os模块常用方法及属性小结

    主要记录os 模块常用的方法

    1. os 模块常用的方法及属性

    os.sep:取代操作系统特定的路径分隔符
    
    os.name:指示你正在使用的工作平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。
    
    os.getcwd:得到当前工作目录,即当前python脚本工作的目录路径。
    
    os.getenv()和os.putenv:分别用来读取和设置环境变量
    
    os.listdir():返回指定目录下的所有文件和目录名
    
    os.remove(file):删除一个文件
    
    os.stat(file): 获得文件属性
    
    os.chmod(file): 修改文件权限和时间戳
    
    os.mkdir(name): 创建目录
    
    os.rmdir(name): 删除目录
    
    os.removedirs(r“c:python”): 删除多个目录
    
    os.system(): 运行shell命令。os.system 的结果只是命令执行结果的返回值,执行成功为0
    
    os.popen(command[, mode[, bufsize]]): os.popen() 方法用于从一个命令打开一个管道。popen返回的是file read的对象,对其进行读取使用read()
    
    os.exit(): 终止当前进程
    
    os.mknod(): 创建空文件
    
    os.linesep: 给出当前平台的行终止符。例如,Windows使用'
    ',Linux使用'
    '而Mac使用'
    '
    
    os.path.exist(): 检验给出的路径是否真的存在
    
    os.listdir(dirname): 列出dirname下的目录和文件
    
    os.getcwd(): 获得当前工作目录
    
    os.curdir: 返回当前目录('.')
    
    os.chdir(dirname): 改变工作目录到dirname
    
    os.path.isdir(name): 判断name是不是目录,不是目录就返回false
    
    os.path.isfile(name): 判断name这个文件是否存在,不存在返回false
    
    os.path.exists(name): 判断是否存在文件或目录name
    
    os.path.getsize(name): 或得文件大小,如果name是目录返回0L
    
    os.path.getatime(path): 返回上次访问路径的时间,返回值是一个浮点数
    
    os.path.getmtime(path): 返回上次修改一路径的时间,返回值是一个浮点数
    
    os.path.getctime(path): 返回系统的ctime,在某些系统(如Unix)上是最后一次元数据更改的时间,而在其他系统(如Windows)上则是路径的创建时间。返回值是一个数字
    
    os.path.abspath(name): 返回一个目录的绝对路径
    
    os.path.realpath(path): 返回指定文件的标准路径,而非软链接所在的路径
    
    os.path.isabs(): 判断是否为绝对路径
    
    os.path.normpath(path): 规范path字符串形式。示例: os.path.normpath('c://windows\System32\../Temp/')    # 输出'c:\windows\Temp'
    
    os.path.split(name): 分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在),示例: ('F:/Technology-20161005/python/python_project/demo/os_sysdemo', 'sysdemo.py')
    
    os.path.splitext(): 分离文件名和扩展名  # ('F:/Technology-20161005/python/python_project/demo/os_sysdemo/sysdemo', '.py')
    
    os.path.join(path,name): 连接目录与文件名或目录
    
    os.path.basename(path): 返回文件名
    
    os.path.dirname(path): 返回文件路径
    

    2. 常用方法

    • 统计当前目录下已经创建的文件
        current_path = os.path.realpath('.')
        start_time = time.time()
        # 判断当前路径下比当前时刻早的已经创建的文件
        created_files = [name for name in os.listdir(current_path) if os.path.isfile(os.path.join(current_path, name)) and
                         os.path.getctime(os.path.join(current_path, name)) < start_time]
        print created_files
    
    • 统计当前目录下后创建的文件
        current_path = os.path.realpath('.')
        start_time = time.time()
        # 判断当前路径下后创建的文件
        created_files = [name for name in os.listdir(current_path) if os.path.isfile(os.path.join(current_path, name)) and
                         os.path.getmtime(os.path.join(current_path, name)) > start_time]
        print created_files
    
    • 删除文件操作
    import os, errno
    
    def silent_remove_of_file(file):
        try:
            os.remove(file)
        except OSError as e:
            if e.errno != errno.ENOENT:
                raise e
            return False
        return True
    
    • os.walk 的使用
      os.walk 的返回值是一个生成器(generator),每次遍历返回的都是一个三元组(root,dirs,files)
    root 所指的是当前正在遍历的这个文件夹的本身的地址
    dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
    files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
    

    示例: 遍历一个目录下的所有文件,包括子目录中的,输出文件的地址及文件的大小

    file_operate.py 文件

    import os
    
    
    def search_all_file(start_dir):
        """
        遍历一个目录下的所有文件,包括子目录中的,输出文件的地址及文件的大小
        :param start_dir:  起始目录
        :return:
        """
        for dirpath, dirname, files in os.walk(start_dir):
            print 'current path: {}'.format(dirpath)
            print 'current sub dir: {}'.format(dirname)
            # TODO 获取目录下的所有文件的路径 及 对应的 文件大小, 单位 byte
            for f in files:
                print '{}, size: {} byte'.format(os.path.join(dirpath, f), os.path.getsize(f))
    
    if __name__ == '__main__':
        search_all_file('.')
    

    执行结果如下:

    current path: .       # 当前目录
    current sub dir: ['dir1']  # 当前目录下的子目录名称
    .1.jpg, size: 120780 Byte # 当前目录下的文件
    .1.txt, size: 368 Byte
    .config.ini, size: 116 Byte
    .file_operate.py, size: 4418 Byte
    .file_operate.pyc, size: 183 Byte
    .module_demo.py, size: 11593 Byte
    .\__init__.py, size: 148 Byte
    current path: .dir1   # 当前目录下的第一层子目录
    current sub dir: ['dir2'] # 当前目录下的第一层子目录 下的子目录名称
    .dir11.txt, size: 368 Byte
    current path: .dir1dir2 # 当前目录下的第一层子目录下的子目录
    current sub dir: []
    .dir1dir21.jpg, size: 120780 Byte
    
    种一棵树最好的时间是十年前,其次是现在!
  • 相关阅读:
    切换到真正的最高权限 SYSTEM 账户界面
    javascript中replace的正则表达式语法
    微软系统漏洞_超长文件路径打造私人地盘
    JAVA控制台
    PowerPoint绘图笔不能用
    《JavaScript核心技术》
    Catch(...) C++中三个点
    XMLHttp连续调用SEND需要注意的问题
    Wscript中的事件机制
    JavaScript(JS)常用的正则表达式
  • 原文地址:https://www.cnblogs.com/gaozhidao/p/12317258.html
Copyright © 2011-2022 走看看