1、os.path.abspath(__file__)用法及意义
os.path.abspath(__file__) 作用: 获取当前脚本的完整路径
import os
print(os.path.abspath(__file__) )
result:
注意:
只有当在脚本中执行的时候,os.path.abspath(__file__)才会起作用,因为该命令是获取的当前执行脚本的完整路径,如果在交互模式或者terminate 终端中运行会报没有__file__这个错误:
>>> import os
>>> cur_path = os.path.dirname(os.path.abspath(__file__))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name '__file__' is not defined
>>>
2、os.listdir() 方法
os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。
3、os.walk()方法
os.walk()用类似于深度遍历的方式遍历文件夹中的子文件夹以及文件
os.walk(top, topdown=True, =None, followlinks=False)
可以得到一个三元tupple(dirpath, dirnames, filenames),
第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。
- dirpath 是一个string,代表目录的路径,
- dirnames 是一个list,包含了dirpath下所有子目录的名字。
- filenames 是一个list,包含了非目录文件的名字。
这些名字不包含路径信息,如果需要得到全路径,需要使用os.path.join(dirpath, name).。
通过for循环自动完成递归枚举
例如:
F:\aaa 目录是这样的文件目录结构
分别打印各个参数的实际值:
4、os.path.split()和os.path.splitext()的使用
1. os.path.split(‘path’):按照路径将文件名和路径分割开
import os
path = 'E:\PyEVM-master\PyEVM-master\CASME2_MAG_PIC\sub01'
#返回路径和文件名
dirName,fileName = os.path.split(path)
print('dirName is',dirName)
print('fileName is',fileName)
结果:
dirname is E:\PyEVM-master\PyEVM-master\CASME2_MAG_PIC
filename is sub01
2. os.path.splitext()将文件名和扩展名分开
path = 'E:/yEVM-master/PyEVM-master/CASME2_MAG_PIC/sub01/text.py'
#返回文件名和扩展名
fileName,extensionName = os.path.splitext(path)
print('fileName is',fileName)
print('extensionName is',extensionName)
结果:
fileName is E:/yEVM-master/PyEVM-master/CASME2_MAG_PIC/sub01/text
extensionName is .py
5、os.sep用法
python是跨平台的。在Windows上,文件的路径分隔符是'\',在Linux上是'/'。
为了让代码在不同的平台上都能运行,那么路径应该写'\'还是'/'呢?
使用os.sep的话,就不用考虑这个了,os.sep根据你所处的平台,自动采用相应的分隔符号。
举例
Linux下一个路径,/usr/share/python,那么上面的os.sep就是‘/’
windows下一个路径,C:\Users\Public\Desktop,那么上面的os.sep就是‘\’.
data_dir = os.sep.join(['hello', 'world'])