我有一个使用一个临时文件的包,并且该文件是使用包函数写入和加载的。问题是我将此包与 Azure Functions 一起使用,并且只允许您写入那里的特殊位置。我怎样才能强制这个包写入这个位置?该路径在包内部定义为全局变量:
### foo_package.py ###
path = 'file.json'
def read_file():
with open(path, "r") as file:
json_data = json.load(file)
def save_file(json_data):
with open(path, "w") as file:
json.dump(json_data, file)
def foo_function():
file = load_file()
...
save_file(json_data)
### my_code.py ###
from foo_package import foo_function
foo_function() # writes to ./, but i need to write to /some/path
由于
path
被指定为 'file.json'
的相对路径,因此您可以在调用 os.chdir
之前使用 foo_function
更改工作目录,并根据需要更改回工作目录:
### my_code.py ###
import os
from foo_package import foo_function
cwd = os.getcwd()
os.chdir('/some/path')
foo_function()
os.chdir(cwd)