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__)