Python成为专业人士笔记–os.path 路径操作

“专业人士笔记”系列目录:

创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!

os.path

这个模块在路径名上实现了一些有用的函数。路径参数可以作为字符串传递,也可以作为字节传递。我们鼓励应用程序将文件名表示为(Unicode)字符串。

Join 函数

要将两个或多个路径组件连接在一起,首先导入python的os模块,然后使用以下代码 :

        import os
path=os.path.join('a', 'b', 'c')
print(path)

#输出:a/b/c
      

使用os.path的优势:允许代码在所有操作系统上保持兼容,因为它使用了与它所运行的平台相适应的分隔符

例如,这个命令在Windows上的结果将是 :

        #输出 a\b\c    #因为在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
      

今天分享就到这里,禁止转载,违者必究

猜你喜欢

转载自blog.csdn.net/oSuiYing12/article/details/106211768