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_))当前脚本所在绝对路径的文件夹的上一层文件夹