os.path 在python中也算是简单介绍一个常用的模块,特别是模块和文件系统打交道时,涉及到文件、常用目录操作经常会用到,简单介绍你去看一些框架的模块源代码的时候也经常会使用到这些方法。
如果去看官方文档,常用os.path 大概提供了近20个方法,简单介绍其实比较常用的模块方法我总结的9个,你可以跟着操作下,常用很容易就记住了。简单介绍其实看方法名都知道具体是模块做什么的。
os.path.png
获取文件的简单介绍绝对路径
path = "test.py" print(os.path.abspath(path)) # C:\Users\lzjun\workspace\python_scripts\test.py获取文件名,模块不包含目录部分,常用 如果该路径本身就是个目录,那么返回的就是云南idc服务商空
path = "C:/Users/lzjun/workspace/python_scripts/test_path.py" print(os.path.basename(path)) # test_path.py path = "../test/" print(os.path.basename(path)) # 空字符串获取文件的目录部分, dirname + basename 就可以构成文件的完整路径名
path = "C:/Users/lzjun/workspace/python_scripts/test_path.py" print(os.path.dirname(path)) # C:/Users/lzjun/workspace/python_scripts判断路径是否存在,这里的路径包括目录和文件(在linux系统,一切皆文件), 如果你直接复制我的代码,可能返回的结果是False,因为你的系统可能没有这些目录。
path = "C:/Users/lzjun/workspace/python_scripts/test_path.py" print(os.path.exists(path)) # True path = "C:/Users/lzjun/workspace/python_scripts" print(os.path.exists(path)) True获取文件大小,也可以获取目录(所有文件的)大小,取决你你传的路径参数是文件还是目录。单位是字节
path = "C:/Users/lzjun/workspace/python_scripts/test_path.py" print(os.path.getsize(path)) # 177split 方法会将路径切割成两部分,服务器租用以最后一个斜杠作为切割点,第一部分是文件所在的目录, 第二部分文件名本身。如果传入的path是以“/”结尾,那么第二部就是空字符串
path = "C:/Users/lzjun/workspace/python_scripts/test_path.py" print(os.path.split(path)) # (C:/Users/lzjun/workspace/python_scripts, test_path.py) path = "C:/Users/lzjun/workspace/python_scripts/" print(os.path.split(path)) # (C:/Users/lzjun/workspace/python_scripts, )join是与split对应的方法,用于拼接文件路径,一般用于已知a文件的完整路径,我想在与a同目录下创建个b文件就可以用到join方法。
a_path = "C:/Users/lzjun/workspace/python_scripts/a.py" dir = os.path.split(a_path)[0] print(os.path.join(dir, "b.py")) # C:/Users/lzjun/workspace/python_scripts\b.py判断路径是否为目录,注意,如果该目录不存在也不会报错,而是直接返回False
path = "C:/Users/lzjun/workspace/python_scripts/" print(os.path.isdir(path)) # True判断路径是否为文件,注意,如果该文件不存在也不会报错,而是站群服务器直接返回False
print(os.path.isfile(__file__)) # True a_path = "C:/Users/lzjun/workspace/python_scripts/a.py" print(os.path.isfile(a_path)) # False (文件压根不存在)