假设我有一个名为 credentials.json
的文件在我当前的目录中,有一个环境变量 MY_CREDENTIALS=credentials.json
和一个脚本main.py
通过 os.getenv('MY_CREDENTIALS')
使用此环境变量。
现在假设我创建一个子文件夹并在其中放入如下内容:/subfolder/my_other_script.py
。
如果我打印os.getenv('MY_CREDENTIALS')
然后我确实得到了credentials.json
但我无法使用此文件,因为它位于我的根目录中(不在 /subfolder
中)。那么,虽然这个文件在根目录下,我该如何使用呢?唯一对我有用的就是复制 credentials.json
在/subfolder
,但是我会有这个文件的多个副本,但我不想要这样。
感谢您的回复!
最佳答案
像这样的东西可能会起作用:
from pathlib import Path
import os
FILENAME = os.getenv('MY_CREDENTIALS')
filePath = Path(FILENAME)
if filePath.exists() and filePath.is_file():
print("Success: File exists")
print(filePath.read_text())
else:
print("Error: File does not exist. Getting file from level below.")
print((filePath.absolute().parent.parent / filePath.name).read_text())
基本上,您检查当前文件夹中是否存在您的文件。如果您的脚本位于根文件夹中,就会出现这种情况。如果不是,则假设您位于子文件夹中。因此,您尝试从下一级(您的根目录)获取该文件。 它尚未完全准备好投入生产,但对于您提到的特定情况,它应该可以工作。在生产中,您应该考虑可能存在嵌套子文件夹或文件永久丢失的情况。
关于python - 如何从子文件夹访问路径级别以下的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60006753/