python os模块之目录操作详解

发布时间:2020-06-09编辑:脚本学堂
本文详细介绍下python中的os模块的用法,分享下使用os模块进行目录操作的例子,有兴趣的朋友参考研究下。

本节主要内容:
python os模块实现目录操作。

python的OS模块
 - 目录操作

1. 目录操作
 

 - mkdir(path[, mode=权限])           create单级目录
 - makedirs(path[, mode=权限])        create多级目录
 - rmdir(path)      删单级
 - removedirs(path) 删多级, 前提是空的   
 - listdir(path)    指定path的目录及文件
 - getcwd()         当前path
 - chdir(path)      切换当前path
 - walk(top, topdown=True, onerror=None)    遍历目录

2. 举例
   

复制代码 代码示例:
>>> import os
    >>> os.getcwd()
    'E:desktoppythonpy_src'
    >>> os.mkdir("new_dir")
    >>> os.chdir(".new_dir")
    >>> os.getcwd()
    'E:desktoppythonpy_srcnew_dir'
    >>> os.mkdir("dir_A")
    >>> os.mkdir("dir_B")
    >>> os.makedirs("dir_Cdir_C_A")
    >>> for dir in os.walk(".") :
    ...     print dir
    ...
    ('.', ['dir_A', 'dir_B', 'dir_C'], [])
    ('.dir_A', [], [])
    ('.dir_B', [], [])
    ('.dir_C', ['dir_C_A'], [])
    ('.dir_Cdir_C_A', [], [])
    >>> os.rmdir("dir_A")
    >>> os.chdir("..")
    >>> os.getcwd()
    'E:desktoppythonpy_src'
    >>> os.removedirs(".new_dirdir_Cdir_C_A")
    >>> os.removedirs(".new_dirdir_B")

3. 递归目录
  

- os.walk
  
    >>> gen = os.walk("E:desktoppythonpy_src7")
    >>> for path,dir,filename in gen :
    ...     print path, dir, filename
    ...
 

   
   - 自定义递归 07Traversedirs.py
     - listDirs()
     - treeDirs()

复制代码 代码示例:
#!/bin/python
#
#
import os 
 
def listDirs(dirPath) : 
    pathLists = os.listdir(dirPath)  
    for path in pathLists : 
        #abspath = dirPath + "" + path 
        abspath = os.path.join(dirPath, path) 
        print abspath 
        if os.path.isdir(abspath) : 
            listDirs(abspath) 
 
def treeDirs(dirPath, prefix="|--") : 
    pathLists = os.listdir(dirPath)  
    for path in pathLists : 
        #abspath = dirPath + "" + path 
        abspath = os.path.join(dirPath, path)        
        print prefix + path 
        if os.path.isdir(abspath) : 
            treeDirs(abspath, "    " + prefix) 
 
if __name__ == "__main__" : 
    dirPath = "E:desktoppythonpy_src7" 
    listDirs(dirPath) 
    print "#" * 50 
    treeDirs(dirPath, "|--"