如何重定向Python包的文件写入位置?

问题描述 投票:0回答:1

我有一个使用一个临时文件的包,并且该文件是使用包函数写入和加载的。问题是我将此包与 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
python file-writing
1个回答
2
投票

由于

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)
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.