首页 > 解决方案 > Python - 解析为相对于脚本文件的绝对路径

问题描述

我正在使用 find 语句来执行当前目录的所有子文件夹的子文件夹中的 python 脚本

查找语句是find . -name \process.py -type f -exec python3 {} \;

我遇到的问题是脚本正在使用相对路径,例如..\data用于检索其他资源。当通过从其目录运行脚本单独执行脚本时,这些相对路径将根据需要进行解析,但是当使用find命令从父目录运行脚本时,路径会相对于该父目录解析导致错误

标签: bash

解决方案


您可以使用find命令-execdir的选项:

具有以下文件夹结构/tmp

/test
/test/subdir1
/test/subdir1/subdir2
/test/subdir1/subdir2/subdir3

以及r.py每个文件夹中的一个文件:

# r.py
import os
dirpath = os.path.dirname(os.path.realpath(__file__))
print(dirpath)

你有输出:

/tmp/test
/tmp/test/subdir1
/tmp/test/subdir1/subdir2
/tmp/test/subdir1/subdir2/subdir3

推荐阅读