美文网首页
Python那点事儿 - OS模块

Python那点事儿 - OS模块

作者: lupinwu | 来源:发表于2020-08-26 16:31 被阅读0次

    OS 模块

    OS模块是Python内置的模块,通过使用import语句可以直接调用。

    import os
    
    • os.getcwd()
      显示当前工作目录。
    In [57]: os.getcwd()
    Out[57]: '/Users/lupin/Downloads/test'
    
    • os.makedirs()
      新建文件夹,同时也将创建所有必要的中间文件夹。
    In [58]: os.makedirs('d/e/f')
    
    In [59]: ls
    a   a1  b   c   d/
    
    In [60]: ls d
    e/
    
    In [62]: ls d/e
    f/
    
    In [63]: ls d/e/f
    
    • os.listdir(path)
      返回文件名字符串的列表
    In [99]: os.listdir('.')
    Out[99]: ['a', 'a1', 'c', 'd', 'b']
    

    os.path 模块

    包含了许多与文件名和文件路径相关的有用函数。

    • os.path.join()
      解决Windows上的倒斜杠以及OS X和Linux上的正斜杠问题。
    In [56]: os.path.join('usr', 'bin', 'spam')
    Out[56]: 'usr/bin/spam'
    
    • os.path.abspath(path)
      返回参数的绝对路径的字符串,将相对路径转换为绝对路径。
    In [64]: os.path.abspath('.')
    Out[64]: '/Users/lupin/Downloads/test'
    
    In [68]: os.path.abspath('a')
    Out[68]: '/Users/lupin/Downloads/test/a' 
    
    • os.path.isabs(path)
      如果是绝对路径,就返回True,否则返回False。
    In [69]: os.path.isabs('.')
    Out[69]: False
    
    In [71]: os.path.isabs('/Users')
    Out[71]: True
    
    In [76]: os.path.isabs(os.path.abspath('.'))
    Out[76]: True
    
    • os.path.relpath(path,start)
      将返回从start路径到path的相对路径字符串。如果没有提供start,就使用当前工作目录作为开始路径。
    In [85]: os.path.relpath('/bin','/')
    Out[85]: 'bin'
    
    In [86]: os.path.relpath('/bin')
    Out[86]: '../../../../bin'
    
    In [87]: os.getcwd()
    Out[87]: '/Users/lupin/Downloads/test'
    
    • os.path.dirname(path)
      返回字符串,它包含path参数中最后一个斜杠之前的所有内容。
      目录名称:最后一个斜杠之前的所有内容
      基本名称:路径中最后一个斜杠后,与文件名相同
    In [88]: path = '/a/b/c'
    
    In [90]: os.path.dirname(path)
    Out[90]: '/a/b'
    
    • os.path.basename(path)
      返回字符串,包含path参数中最后一个斜杠之前所有内容。
    In [89]: os.path.basename(path)
    Out[89]: 'c'
    
    • os.path.split(path)
      返回元组,包含目录名称,基本名称。
    In [91]: os.path.split(path)
    Out[91]: ('/a/b', 'c')
    
    • op.path.sep
      返回正确的文件夹分割斜杠。
    In [93]: os.path.sep
    Out[93]: '/'
    
    In [94]: path.split(os.path.sep)
    Out[94]: ['', 'a', 'b', 'c']
    
    • os.path.getsize(path)
      返回path参数中文件的字节数。
    In [97]: os.path.getsize('b')
    Out[97]: 13
    
    • os.path.exists(path)
      如果path所指定的文件或文件夹存在,返回True,否则返回False。
    In [104]: ls -al
    total 24
    drwxr-xr-x   7 lupin  staff  224 Aug 26 10:18 ./
    drwxr-xr-x+ 10 lupin  staff  320 Aug 26 07:44 ../
    -rw-r--r--   1 lupin  staff    8 Aug 25 20:27 a
    -rw-r--r--   1 lupin  staff    8 Aug 25 20:43 a1
    -rw-r--r--   1 lupin  staff   13 Aug 25 20:35 b
    -rw-r--r--   1 lupin  staff    0 Aug 25 20:26 c
    drwxr-xr-x   3 lupin  staff   96 Aug 26 10:18 d/
    
    In [105]: os.path.exists('a')
    Out[105]: True
    
    • os.path.isfile(path)
      如果path参数存在,并且是一个文件,则返回True,否则返回False。
    In [106]: os.path.isfile('a')
    Out[106]: True
    
    • os.path.isdir(path)
      如果path参数存在,并且是一个文件夹,则返回True,否则返回False。
    In [107]: os.path.isdir('a')
    Out[107]: False
    

    示例

    • 当前文件夹所有文件的总字节数
    In [100]: totalsize = 0
    
    In [101]: for filename in os.listdir('.'):
         ...:     totalsize += os.path.getsize(filename)
         ...:
    
    In [102]: totalsize
    Out[102]: 125
    
    • 判断DVD或闪存盘是否连在计算机上
    os.path.exists('d:\\')
    

    相关文章

      网友评论

          本文标题:Python那点事儿 - OS模块

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