“专业人士笔记”系列目录:
创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!zhuanlan.zhihu.comos.path
这个模块在路径名上实现了一些有用的函数。路径参数可以作为字符串传递,也可以作为字节传递。我们鼓励应用程序将文件名表示为(Unicode)字符串。
Join 函数
要将两个或多个路径组件连接在一起,首先导入python的os模块,然后使用以下代码 :
import os
path=os.path.join('a', 'b', 'c')
print(path)
#输出:a/b/c
使用os.path的优势:允许代码在所有操作系统上保持兼容,因为它使用了与它所运行的平台相适应的分隔符
例如,这个命令在Windows上的结果将是 :
#输出 abc #因为在windows系统,路径是正斜扛
在unix/linux中是:
#输出 a/b/c #因为在unix/linux系统,路径是反斜扛
路径分离
import os
p = os.path.join(os.getcwd(), 'foo.txt')
print(p) #其中os.getcwd函数用于获取当前py文件的工作目录,整体反回当前工作目录+文件名
print(os.path.dirname(p)) # p变量中的路径
print(os.path.basename(p)) # p变量中的文件名
print(os.path.split(os.getcwd())) #获取路径的每个节点
print(os.path.splitext(os.path.basename(p))) #获取文件名与后缀
#输出:
/home/python-study/foo.txt
/home/python-study
foo.txt
('/home', 'python-study')
('foo', '.txt')
获取父目录
接着上面的代码,我们尝试获取p变量的父目录:
import os
p = os.path.join(os.getcwd(), 'foo.txt')
print(p) #其中os.getcwd函数用于获取当前py文件的工作目录,整体反回当前工作目录+文件名
print(os.path.dirname(p)) # p变量中的路径
print(os.path.basename(p)) # p变量中的文件名
print(os.path.split(os.getcwd())) #获取路径的每个节点
print(os.path.splitext(os.path.basename(p))) #获取文件名与后缀
#获取父目录:
print('父目录是',os.path.abspath(os.path.join(p, os.pardir)))
#输出:
/home/python-study/foo.txt
/home/python-study
foo.txt
('/home', 'python-study')
('foo', '.txt')
父目录是 /home/python-study
检查路径是否存在
import os
path = '/home/john/temp'
print(os.path.exists(path))
#如果该路径存在,则返回True,如果不存在,返回false
检查路径属性
我们可以检查给定的路径是否为目录、文件、符号链接、挂载点等 :
import os
dirname = '/home/python-study/'
print('是否为路径?',os.path.isdir(dirname))
filename = dirname + 'main.py'
print(filename)
print('是否为文件',os.path.isfile(filename))
symlink = dirname + 'some_sym_link'
print('是否为软链接?',os.path.islink(symlink))
mount_path = '/'
print('是否为挂载点?',os.path.ismount(mount_path))
#输出:
是否为路径? True
/home/python-study/main.py #这是文件加上后的路径
是否为文件 True
是否为软链接? False
是否为挂载点? True
相对路径转绝对路径
import os
print(os.getcwd())
print(os.path.abspath('foo'))
print(os.path.abspath('../foo'))
print(os.path.abspath('/foo'))
#输出:
/home/python-study
/home/python-study/foo
/home/foo
/foo
今天分享就到这里,禁止转载,违者必究