假设我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
in /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())
基本上,您检查文件是否在当前文件夹中。如果您的脚本位于根文件夹中,则将是这种情况。如果不是,则假定您在子文件夹中。因此,您尝试从下一级(您的根目录)获取文件。它尚未完全准备就绪,但是对于您提到的特定情况,它应该可以工作。在生产环境中,您应该考虑可能存在嵌套子文件夹或文件永久丢失的情况。