【python】python解析linux路径函数

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析DNS,个人版 1个月
简介: 【python】python解析linux路径函数

前言

还是linux下对路径进行处理的问题,因此我把处理归纳一下。对于路径,最棘手的其实无非是环境变量和各层相对路径,通过函数去除这些,最终处理为绝对路径。

代码处理

处理环境变量:

1. def replace_env_var(path):
2. def get_env(match):
3. return os.getenv(match.group(1))
4.     path = re.sub(r"\$(\w+)", get_env, path)
5. return path

处理相对路径,有两种用法,一是把整个路径放在base里,直接转为直接路径;而是base放相对路径的基地址,offset放相对路径,最后得到一个完成路径,实际就是把拼接的工作交给函数自己完成了:

1. def replace_relative_path(base, offset=""):
2. if offset != "":
3.         path = os.path.join(base, offset)
4. else:
5.         path = base
6.     path = re.sub(r"\/.\/\/", "//", path) # /path/./aaa -> /path//a
7.     path = re.sub(r"\/+", "/", path) #/path///aa//b -> /path/a/b
8. while re.search(r"\w+\/\.\.\/", path):
9.         path = re.sub(r"\w+\/\.\.\/", "",path) #/path/aa/../b -> /path/b
10. return path

借助这两个函数呢,可以直接拼成一个完成的函数:

1. def path_trans(path):
2.     return replace_relative_path(replace_env_var(path))


相关文章
|
7天前
|
机器学习/深度学习 人工智能 PyTorch
掌握 PyTorch 张量乘法:八个关键函数与应用场景对比解析
PyTorch提供了几种张量乘法的方法,每种方法都是不同的,并且有不同的应用。我们来详细介绍每个方法,并且详细解释这些函数有什么区别:
17 4
掌握 PyTorch 张量乘法:八个关键函数与应用场景对比解析
|
3天前
|
存储 缓存 算法
Python中的hash函数
Python中的hash函数
|
4天前
|
安全 数据库连接 数据库
Python深度解析:上下文协议设计与应用技巧
在Python编程中,资源管理是一个常见且重要的问题。无论是文件操作、网络连接还是数据库事务,都需要确保资源在使用后能够正确地释放或恢复到初始状态。Python通过上下文管理器提供了一种优雅的方式来处理资源的获取与释放,使得代码更加简洁、安全。
|
6天前
|
Python
Python学习笔记---函数
这篇文章是一份Python函数学习的笔记,涵盖了使用函数的优势、内置函数的调用、自定义函数的定义、函数参数的不同类型(必须参数、关键字参数、默认参数、可变参数)、有返回值和无返回值的函数、形参和实参、变量作用域、返回函数、递归函数、匿名函数、偏函数以及输入和输出函数等多个函数相关的主题。
|
8天前
|
开发者 Python
深入解析Python `httpx`源码,探索现代HTTP客户端的秘密!
深入解析Python `httpx`源码,探索现代HTTP客户端的秘密!
31 1
|
8天前
|
开发者 Python
深入解析Python `requests`库源码,揭开HTTP请求的神秘面纱!
深入解析Python `requests`库源码,揭开HTTP请求的神秘面纱!
21 1
|
10天前
|
存储 数据库 C++
"深入剖析Python元组(tuple):与列表的对比、特性解析及高效应用场景展示"
【8月更文挑战第9天】Python元组与列表虽均用于存储元素集合,但有本质差异。元组不可变,创建后无法修改,适合保护数据不被意外更改的场景,如作字典键或传递固定值。列表则可变,支持动态增删改,适用于需频繁调整的数据集。元组因不可变性而在性能上有优势,可用于快速查找。两者各有千秋,根据具体需求选择使用。例如,元组可用于表示坐标点或日期,而列表更适合管理用户列表或库存。
16 1
|
12天前
|
机器学习/深度学习 算法 机器人
【2023年第十三届APMCM亚太地区大学生数学建模竞赛】A题 水果采摘机器人的图像识别 Python代码解析
本文介绍了2023年第十三届APMCM亚太地区大学生数学建模竞赛A题的Python代码实现,详细阐述了水果采摘机器人图像识别问题的分析与解决策略,包括图像特征提取、数学模型建立、目标检测算法使用,以及苹果数量统计、位置估计、成熟度评估和质量估计等任务的编程实践。
24 0
【2023年第十三届APMCM亚太地区大学生数学建模竞赛】A题 水果采摘机器人的图像识别 Python代码解析
|
4天前
|
Python
深入解析 Python中的命名空间和作用域并举例
【8月更文挑战第15天】Python中的命名空间与作用域是理解变量组织与访问的核心。命名空间是名称到对象的映射,分为全局、局部和内置三种。作用域定义变量的可访问范围,遵循LEGB规则:局部(L)、闭包(E)、全局(G)、内置(B)。示例展示了如何通过`nonlocal`声明跨作用域修改变量。这些机制确保了变量的有效管理和代码的高效执行。
11 0
|
5天前
|
Python
Python 函数
Python 函数
7 0