Python 标准库 —— os 模块

来源:互联网 发布:成为算法工程师 编辑:程序博客网 时间:2024/05/17 05:13
功能 语句 说明 导入 import os 获得当前路径 os.getcwd() 我们在某一目录下使用python
或者ipython进入python命令行界面, 改变当前路径 os.chdir(path) 创建目录 os.makedirs(path) 获得当前执行脚本(.py文件)的路径信息 os.path.split(__file__)[0]/[1] os.path.split()返回的是tuple类型
[0]:表示路径
[1]:表示文件名 判断是否是目录 os.path.isdir is directory ? 路径信息之文件夹路径 os.path.dirname() 路径信息之文件名 os.path.basename()

os.makedirs vs os.mkdir

makedirs():将创建所有的中间路径(intermediate directories),即使这些中间目录并不存在(等同于bash环境下的:mkdir-p)。
mkdir()用来创建一个单独的子目录,如果在参数中指定中间目录,将会抛出异常。

FileNotFoundError: [WinError 3] 系统找不到指定的路径。: './1/2/3/4'

两者均可创建单独的叶子目录:

  • os.mkdir(‘dirA’)

  • os.mkdir(‘dirB’)

makedirs可以用来创建分支:

  • os.mkdir('dirA/dirB'):抛异常,如果dirA不存在的话

  • os.makedirs('dirA/dirB'):成功

和bash环境下的mkdir -p所不同的一点是,两者都会创建失败如果叶子目录,本身即已存在。

关于__file__

在python控制台(也即命令行界面)下,直接使用print __file__会导致name __file__ is not defined,因为这时(python命令行环境)没有在任何一个脚本(.py)文件下执行,自然没有__file__的定义了。

当前执行脚本的上层路径及上上层路径

# 上层路径print os.path.abspath(    os.path.join(os.path.dirname(__file__), os.pardir))# 上上层路径print os.path.abspath(    os.path.join(os.path.dirname(__file__), os.pardir, os.pardir))

os.path.split()[0]/[1] 与 os.path.dirname()/basename()

os.path.split(__file__)        # 返回的是一个元组类型,        # 有两个元素构成,分别是路径信息以及文件名
print os.path.split(__file__)[0], os.path.dirname(__file__) print os.path.split(__file__)[0], os.path.basename(__file__)

sys.argv[0]与__file__

获取主执行文件的最佳方法sys.argv[0],它可能是一个相对路径,所以再取一次绝对路径是一个双保险的做法:

import osimport sysdirname, filename = os.path.split(os.path.abspath(sys.argv[0]))print 'running from', dirnameprint 'file is', filename
0 0