Python那点事儿|Python那点事儿 - OS模块

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 aa1bcd/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 模块 【Python那点事儿|Python那点事儿 - OS模块】包含了许多与文件名和文件路径相关的有用函数。
  • 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]: FalseIn [71]: os.path.isabs('/Users') Out[71]: TrueIn [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-x7 lupinstaff224 Aug 26 10:18 ./ drwxr-xr-x+ 10 lupinstaff320 Aug 26 07:44 ../ -rw-r--r--1 lupinstaff8 Aug 25 20:27 a -rw-r--r--1 lupinstaff8 Aug 25 20:43 a1 -rw-r--r--1 lupinstaff13 Aug 25 20:35 b -rw-r--r--1 lupinstaff0 Aug 25 20:26 c drwxr-xr-x3 lupinstaff96 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 = 0In [101]: for filename in os.listdir('.'): ...:totalsize += os.path.getsize(filename) ...:In [102]: totalsize Out[102]: 125

  • 判断DVD或闪存盘是否连在计算机上
os.path.exists('d:\\')

    推荐阅读