Python - 解析为相对于脚本文件的绝对路径

时间:2018-06-01 15:51:46

标签: python

我使用find语句执行python脚本,这些脚本位于当前目录的所有子文件夹的子文件夹中

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

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

2 个答案:

答案 0 :(得分:0)

如果您需要在python中执行此操作,我建议您查看以下答案: How to get an absolute file path in Python

找到绝对路径总是更好,如果使用bash:

readlink -f filename 

答案 1 :(得分:0)

您可以使用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
相关问题