re.findall(r'[a-zA-Z0-9\:\/\\\_\-]*target_dir_name', os.path.abspath(__file__))[0]
此语句可以找到target_dir_name文件夹所在的绝对路径,不受文件位置移动影响。
详解语句如下
-
re
re是Python中关于Regular expressions的模块,官方文档。 -
re.findall(pattern, string, flags=0)
对
string返回一个不重复的pattern的匹配列表。string从左到右进行扫描,匹配按找到的顺序返回。如果样式里存在一到多个组,就返回一个组合列表;就是一个元组的列表(如果样式里有超过一个组合的话)。空匹配也会包含在结果里。 -
r’[a-zA-Z0-9:/\_-]*target_dir_name’
在带有
'r'前缀的字符串字面值中,反斜杠不必做任何特殊处理。 因此r"\n"表示包含'\'和'n'两个字符的字符串 -
os.path.abspath(_file_)
返回当前脚本所在绝对路径
os.path.firname(_file_)当前脚本所在绝对路径的文件夹
os.path.firname(os.path.firname(_file_))当前脚本所在绝对路径的文件夹的上一层文件夹
本文介绍了一个使用Python的正则表达式(re)模块和os模块来查找特定目录(target_dir_name)绝对路径的方法,此方法不受文件位置移动的影响,适用于需要稳定路径引用的场景。
633

被折叠的 条评论
为什么被折叠?



