os.path.realpath()
函数是Python标准库中的一个函数,用于返回指定路径的规范化的绝对路径。
它的作用是解析路径中的任何符号链接或相对路径,并返回一个唯一且可操作的绝对路径。具体来说,它会消除路径中的任何符号链接并展开所有的相对路径,以获取真实存在的文件或目录的路径。
例如,假设当前工作目录是/home/user
,而指定的路径是./dir/file.txt
。这个路径包含相对路径和当前目录.
。调用os.path.realpath()
函数之后,它将返回/home/user/dir/file.txt
,这是规范化的绝对路径。
示例用法:
import os
path = './path/to/file.txt'
real_path = os.path.realpath(path)
print(real_path) # 输出规范化的绝对路径
需要注意的是,该函数将解析路径中的符号链接并返回目标路径,因此结果可能不是输入路径的原始形式。另外,如果指定的路径不存在,该函数可能会引发FileNotFoundError
异常。
os.path.dirname()
函数是Python标准库中的一个函数,用于返回给定路径的目录部分。
具体来说,它会返回指定路径的最后一个目录的路径,即路径的父目录。如果指定的路径是一个文件路径,则返回该文件所在的目录路径;如果指定的路径是一个目录路径,则返回该目录的父目录路径。
示例用法:
import os
path = '/home/user/dir/file.txt'
dir_path = os.path.dirname(path)
print(dir_path) # 输出目录路径: /home/user/dir
需要注意的是,os.path.dirname()
函数并不会检查给定路径是否真实存在,它只是对路径字符串进行操作,因此它不会引发任何异常。如果指定的路径已经是根目录,则函数会返回一个空字符串。如果路径不包含任何斜杠,则会返回当前工作目录。
这个函数在处理文件路径时非常有用,可以方便地获取父目录的路径,进而对文件进行操作、移动或定位到相关的目录。
os.path.join()
函数是Python标准库中的一个函数,用于将多个路径组合成一个完整的路径。
具体来说,它接受多个路径作为参数,并按照当前操作系统的规则将它们连接起来。它会自动根据操作系统的不同来添加正确的路径分隔符,确保生成的路径在不同的操作系统上都是有效的。
示例用法:
import os
path1 = '/home/user'
path2 = 'dir'
filename = 'file.txt'
full_path = os.path.join(path1, path2, filename)
print(full_path) # 输出完整的路径: /home/user/dir/file.txt
需要注意的是,os.path.join()
函数会自动处理路径分隔符,无论是斜杠(/
)还是反斜杠(\
)。它会根据当前操作系统的规则使用适当的路径分隔符来拼接路径。
该函数非常有用,特别是在编写跨平台的代码时。通过使用os.path.join()
函数,你可以以一种简单和可靠的方式构建路径,而无需关心操作系统的差异。
当使用os.path.realpath()
, os.path.dirname()
和os.path.join()
函数结合使用时,可以处理一个文件的路径,获取其规范化的绝对路径以及其所在的目录路径。
示例代码:
import os
# 原始文件路径
file_path = './path/to/file.txt'
# 获取文件的规范化绝对路径
real_path = os.path.realpath(file_path)
print('Real path:', real_path)
# 获取文件所在的目录路径
dir_path = os.path.dirname(real_path)
print('Directory path:', dir_path)
# 构建新的文件路径
new_file_name = 'new_file.txt'
new_file_path = os.path.join(dir_path, new_file_name)
print('New file path:', new_file_path)
输出结果:
Real path: /home/user/path/to/file.txt
Directory path: /home/user/path/to
New file path: /home/user/path/to/new_file.txt
在上面的示例中,首先使用os.path.realpath()
函数获取文件的规范化绝对路径,然后使用os.path.dirname()
函数获取文件所在的目录路径。最后,使用os.path.join()
函数将新的文件名和目录路径拼接起来,构建出一个新的文件路径。
import os
dir_path = os.path.dirname(os.path.realpath('./path/to/file.txt'))
print(dir_path)
print(os.path.join(dir_path, 't5-pegasus'))
输出如下:
D:\Anaconda\envs\pytorch\python.exe F:\match\main.py
F:\match\path\to
F:\match\path\to\t5-pegasus
Process finished with exit code 0