美文网首页
Python os模块详解

Python os模块详解

作者: Jlan | 来源:发表于2017-03-23 14:01 被阅读723次

    转载自:http://www.jianshu.com/p/e294d124a076

    操作文件

    # I use jupyter notebook to create some file
    !touch foo.txt
    !echo Hello > foo.txt
    !cat foo.txt
    

    Hello

    # rename file
    os.rename('foo.txt','bar.txt')
    !cat bar.txt
    

    Hello

    # remove file
    os.remove('bar.txt')
    

    改变目录

    # current dir
    print os.getcwd() # current working directory
    

    /Users/yongle/OMOOC2py/cheat

    # go down
    os.chdir('img')
    print os.getcwd()
    
    # go back up
    os.chdir(os.pardir) #or simply os.chdir('..')
    print os.getcwd()
    

    /Users/yongle/OMOOC2py/cheat/img
    /Users/yongle/OMOOC2py/cheat

    遍历目录listdir

    # listdir
    !touch a.txt b.txt
    for file in os.listdir('.'):
        # os.listdir() return a list
        if file.endswith('.txt'):
            print file
    

    a.txt
    b.txt

    遍历os.walk

    os.chdir('doc')
    # Directory tree generator.
    # For each dir in the dir tree rooted at top (including top
    # itself, but excluding '.' and '..'), yields a 3-tuple
    # dirpath, dirnames, filenames
    for dirpath, dirnames, filenames in os.walk('.'):
        print dirnames
        print filenames
        break # only one level needed, or just use listdir
    

    ['folder1', 'folder2']
    ['.DS_Store', 'a.txt', 'b.txt']

    增删目录

    单层目录

    # make a dir, one level, no duplication allowed
    os.mkdir('test')
    # remove a dir, one level, not empty will raise OSError
    os.rmdir('test')
    

    多层目录

    # make dirs, multipul level
    os.makedirs('test/mulitiple/levels')
    # remove all empty directories above it, ensure empty
    os.removedirs('test/mulitiple/levels')
    

    非空目录

    # remove non empty dir, ust a new module shutil.rmtree
    # copy function is also useful
    import shutil
    # copy a.txt to backup folder
    # or just shutil.copy('a.txt','backup/')
    # use shutil.copytree to copy a folder like cp -r
    os.mkdir('backup')
    shutil.copy('a.txt',os.path.join('backup','a_backup.txt'))
    # remove non empty folder
    shutil.rmtree('backup/')
    

    os.path模块

    # is a dir or not
    print(os.path.isdir('img'))
    print(os.path.isdir('a.txt'))
    

    True
    False

    # is a file or not
    print(os.path.isfile('img'))
    print(os.path.isfile('a.txt'))
    

    False
    True

    # determine the presence of path(a file or dir); os.path.lexists?
    print(os.path.exists('img'))
    print(os.path.exists('a.txt'))
    print(os.path.exists('none_exist.txt'))
    

    True
    True
    False

    # Join two or more pathname components, inserting '/' as needed.
    # If any component is an absolute path, all previous path components will be discarded.
    print(os.path.join('/Users','john'))
    print(os.path.join('/Users','/john'))
    print(os.path.join('/Users','john','a.txt'))
    

    /Users/john
    /john
    /Users/john/a.txt

    # split a pathname. Returns "(head, tail)" 
    # where "tail" is everything after the final slash.
    os.path.split('/Users/john/a.txt')
    

    ('/Users/john', 'a.txt')

    # split the extension from a pathname
    os.path.splitext('/Users/john/a.txt')
    

    ('/Users/john/a', '.txt')

    # determine the size of a path(file or dir)
    os.path.getsize('a.txt')
    

    0

    相关文章

      网友评论

          本文标题:Python os模块详解

          本文链接:https://www.haomeiwen.com/subject/gliznttx.html