最近因为工作需要,需要大量的文件操作,要说文件操作,首选当然是OS模块了,趁此机会抓紧复习下 os.path
- os.path.abspath(path) 返回路径 path 的绝对路径(标准化的),
RELATIVE_BASE_PATH = './test.txt'
ABSOLUTE_BASE_PATH = r'F:\pythonpack\data_structure\py_os_file\test.txt'
print(os.path.abspath(RELATIVE_BASE_PATH))
print(os.path.abspath(ABSOLUTE_BASE_PATH))
输出:
F:\pythonpack\data_structure\py_os_file\test.txt
F:\pythonpack\data_structure\py_os_file\test.txt
- os.path.split(path)
将路径 path 拆分为一对,即 (head, tail),其中,tail 是路径的最后一部分,而 head 里是除最后部分外的所有内容。tail 部分不会包含斜杠,如果 path 以斜杠结尾,则 tail 将为空。如果 path 中没有斜杠,head 将为空。如果 path 为空,则 head 和 tail 均为空。head 末尾的斜杠会被去掉,除非它是根目录(即它仅包含一个或多个斜杠)总结为:以路径最后一个斜杠为分隔符进行分割,分为前后两部分
print(os.path.split(r'F:\pythonpack\data_structure\py_os_file\test.txt'))
print(os.path.split('F:\\pythonpack\\data_structure\\py_os_file\\'))
print(os.path.split(''))
输出
('F:\\pythonpack\\data_structure\\py_os_file', 'test.txt')
('F:\\pythonpack\\data_structure\\py_os_file', '')
('', '')
- os.path.basename(path)返回路径 path 的基本名称。这是将 path 传入函数 split() 之后,返回的一对值中的第二个元素.有些文档中说返回文件名其实是不严谨的,这里要结合os.path.split()函数一起做对比更容易理解。
RELATIVE_BASE_PATH = './test.txt'
ABSOLUTE_BASE_PATH = r'F:\pythonpack\data_structure\py_os_file'
print(os.path.basename(RELATIVE_BASE_PATH))
print(os.path.basename(ABSOLUTE_BASE_PATH))
输出:
test.txt
py_os_file
- os.path.dirname(path)
返回路径 path 的目录名称。这是将 path 传入函数 split() 之后,返回的一对值中的第一个元素。注意和os.path.basename(path)做对比记忆。
RELATIVE_BASE_PATH = './test.txt'
ABSOLUTE_BASE_PATH = r'F:\pythonpack\data_structure\py_os_file'
print(os.path.dirname(RELATIVE_BASE_PATH))
print(os.path.dirname(ABSOLUTE_BASE_PATH))
输出:
.
F:\pythonpack\data_structure
- os.path.exists(path)
如果 path 指向一个已存在的路径或已打开的文件描述符,返回 True。对于失效的符号链接,返回 False。在某些平台上,如果使用 os.stat() 查询到目标文件没有执行权限,即使 path 确实存在,本函数也可能返回 False。总结为一句话,如果参数path存在或者路径下的文件存在,返回True,特殊情况对某个文件没有执行权限,也可能返回False 这里的路径可以是系统中任何位置的路径,和程序运行路径没关系
print(os.path.exists('./test.txt' ))
print(os.path.exists(r'F:\pythonpack\data_structure\py_os_file'))
print(os.path.exists(r'F:\pythonpack\data_structure\py_os_file111111'))
输出:
True
True
False
暂时先写这么多吧,都是官网搬运的,今天先这样
|