python的os库

os库(operating system,提供操作系统函数)

常用的文件、路径

os.path.dirname(文件名字): 参数为文件名字,输出路径名,/Users/lr_work/liurong_sqls

os.path.abspath(文件名字): 参数为文件名,输出完整文件名,/Users/lr_work/liurong_sqls/run.py

os.getcwd() : 无参数,路径名字,/Users/lr_work/liurong_sqls

__file__ : 文件名字,输出/Users/lr_work/liurong_sqls/run.py

sys.argv[0]: 文件名字,输出/Users/lr_work/liurong_sqls/run.py

os.path.exists(路径名) : 返回True/False

os.path.join(路径1,路径2): 返回路径1+路径2,如果路径2的起始字符为‘/’,则返回结果为路径2

os.curdir : 输出当前路径,"."

1. __file__是什么?

ans:当前文件的名字。

例如r.py内容如下

import os

if __name__ == "__main__":

print __file__

输出结果:r.py

2. print __file__输出结果是固定的吗?

ans:不是固定的。pycharm中会做改动,pycharm会私自加上一个完整路径名字。

直接执行文件输出文件名字,例如:

20181018 python r.py

r.py

从pycharm中编辑完文本,并在pycharm中运行时,结果为:

20181018 python run.py

/Users/liurong07/Documents/code/QA/20181018/run.py

3. 如何获取文件的完整路径?

os.path.abspath(__file__)

输出结果:/Users/liurong07/Documents/code/QA/20181018/run.py

4.如何获取py文件的当前目录?

方法1: os.getcwd()

方法2: os.path.dirname(os.path.abspath(__file__)),推荐此方法。

5. 运行完当前py文件后,py文件的当前目录会增加到sys.path中。

6. 路径拼接 os.path.join(path_1, path_2)

例如

>>> path_1 = '/home/work'

>>> path_2 = 'case/log'

>>> path_1

'/home/work'

>>> path_2

'case/log'

>>>

>>> os.path.join(path_1, path_2)

'/home/work/case/log'

如果两个目录中间/重叠呢? --无法正确拼接,只得到第2个参数的路径

>>> path_3

'/home/work/'

>>> path_4

'/case/log'

>>> os.path.join(path_3, path_2)

'/home/work/case/log'

7. 判断某一个路径是否存在 os.path.exists(path_1)

举例

>>> import os

path为存在的目录

>>> path = '/Users/liurong07/Documents/code/QA/20181018'

>>> print os.path.exists(path)

True

path2为不存在的目录

>>> path2 = '/Users/liurong07/Documents/code/QA/20181018/xxxx'

>>> print os.path.exists(path2)

False

8. 如果某个目录不存在,如果创建目录?

执行linux命令,使用os.system,如下:

>>> os.system('mkdir -p ' + path2)

0

>>> print os.path.exists(path2)

True

9.获取当前文件名

两者等效

sys.argv[0]

__file__

10.获取当前文件的路径

两者等效

os.getcwd()

os.path.dirname(__file__)