python 获取path_Python成为专业人士笔记–os.path 路径操作

本文是专业人士笔记系列,详细介绍了os.path模块的使用,包括Join函数、路径分离、获取父目录、检查路径是否存在、路径属性判断及相对路径转绝对路径等,旨在确保跨平台的代码兼容性。
摘要由CSDN通过智能技术生成

3334589fb25a4335b9a1fab071aa4f67.png

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

创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com
cc230d50cb8aa1d2d711eee346d4f3fd.png

os.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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值