(7-03)os模块的使用-获取绝对路径、路径分离和连接

1.获取指定相对路径的绝对路径

  • 路径是指相对于当前工作目录指定的路径
    .”表示当前目录,而“…”表示上一层目录;

  • 绝对路径是指从最顶层目录开始所给出的完整的路径

  • eg:

如果要访问当前工作目录下名字为DLLs的目录,既可以使用相对路径'.\\DLLs''DLLs',也可以使用绝对路径'D:\\Python\\Python37\\DLLs';
如果要访问当前工作目录的上一层目录,既可以使用相对路径'.. ',也可以使用绝对路径'D:\\Python'
  • 使用os.path.abspath函数可以获取指定相对路径的绝对路径,
    其语法格式为:
os.path.abspath(path)

其作用是获取path所对应的绝对路径

eg:
print(os.path.abspath('..'))#print(os.path.abspath('..'))
print(os.path.abspath('DLLs'))#当前工作目录的绝对路径

结果:
D:\Python
D:\Python\Python37\DLLs

(1)编写程序时应尽量使用相对路径,这样当把编写好的程序从一台机器复制到另一台机器上时也可以正常运行;
(2)而如果使用绝对路径,则通常需要根据另一台机器的目录结构对程序中使用的所有绝对路径做修改,造成了工作量的增加

2.获取文件所在目录的路径

  • 使用os.path.dirname可以获取文件所在目录的路径,
    其语法格式为:
os.path.dirname(path)

其作用是返回path中去除文件名后的路径。

eg:
print(os.path.dirname('D:\\Python\\Python37\\LICENSE.txt'))

结果:
D:\Python\Python37

3.获取文件名

  • 使用os.path.basename可以获取指定路径中的文件名,其语法格式为:
os.path.basename(path)

其作用是返回path中的文件名


eg:
print(os.path.basename('D:\\Python\\Python37\\LICENSE.txt'))

结果:
LICENSE.txt

4.获取指定路径的目录名或文件名

  • 使用os.path.split函数可以将指定路径分解成路径名和目录/文件名两部分。
    os.path.split函数的语法格式为:
os.path.split(path)

结果:
其作用是返回一个由path分解得到的路径名和目录/文件名组成的元组。

eg:
print(os.path.split(os.getcwd+os.sep+'LICENSE.txt'))

结果:
('D:\\Python\\Python37', 'LICENSE.txt')1)如果指定路径中不包含文件名,则会将指定路径分成两部分:最后一个目录名和由前面所有目录组成的路径名。
eg:例如,如果执行“print(os.path.split(os.getcwd()))”,将在屏幕上输出如下结果:('D:\\Python', 'Python37')

5.分离文件扩展名

  • 使用os.path.splitext函数可以将扩展名从指定路径中分离出来,
    其语法格式为:
os.path.splitext(path)

其作用是将path所指定的路径分解为一个元组(root, ext),其中ext是扩展名,root是扩展名前面的内容。

eg:
print(os.path.splittext('d:\\Python\\Python37\\LICENSE.txt'))

结果:
('d:\\Python\\Python37\\LICENSE', '.txt')

6.路径连接

  • 使用os.path.join函数一个路径的多个组成部分用系统路径分隔符(即os.sep)连接在一起,
    其语法格式为:
os.path.join(path, *paths)

其作用是将各参数用系统路径分隔符连接得到的结果返回

eg:
print(os.path.join('D:\\Python','Python37','LICENSE.txt'))


结果:
D:\Python\Python37\LICENSE.txt

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢打篮球的普通人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值