bash - Python - 解析为相对于脚本文件的绝对路径
问题描述
我正在使用 find 语句来执行当前目录的所有子文件夹的子文件夹中的 python 脚本
查找语句是find . -name \process.py -type f -exec python3 {} \;
我遇到的问题是脚本正在使用相对路径,例如..\data
用于检索其他资源。当通过从其目录运行脚本单独执行脚本时,这些相对路径将根据需要进行解析,但是当使用find
命令从父目录运行脚本时,路径会相对于该父目录解析导致错误
解决方案
您可以使用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
推荐阅读
- apache-zeppelin - 齐柏林飞艇超越超集
- php - 为每个文件执行一个 jQuery 脚本,然后打印结果,但多次获得第一个结果
- node.js - 尝试从 EJS 放置到路由文件时无法 POST
- c - 将指针数组传递给函数参数
- spring - 没有可用的“org.springframework.kafka.config.AbstractKafkaListenerContainerFactory”类型的合格bean
- r - 添加一条 Passing-Bablok 回归线
- python - redisgraph-bulk-loader 返回 IndexError
- node.js - SSL 在基于 Express 的 HTTPS-Server Lib 中不起作用
- android - 设置 TextInputLayout 辅助文本的图标并将其居中放置在顶部
- image - 图像质量差,Raspberry Pi 3 V4L USB 摄像头 MJPG OpenCV