如何在 python 中的模块中打开 json 文件
How can I open a json file in modules in python
这是我的项目结构
我正在使用以下代码在 user_input.get_input.py
文件中打开 input.json
:
open('..\data\input.json', 'w')
当我 运行 get_input.py
文件时,它工作得很好。但是当我 运行 run.py
文件时,它显示了这个错误:
FileNotFoundError: [Errno 2] No such file or directory: '..\data\input.json'
我也尝试过使用完整路径,但没有成功!
那是因为您启动的主脚本的工作目录也是您导入的主脚本的工作目录。您可以在 PyCharm 中的 运行 配置中将工作目录设置为 user_input
,或者在 运行ning from [=14] 时将路径更改为 data\input.json
=].
如果你想要在get_input.py
中独立于工作目录的相对路径,试试这个:
from pathlib import Path
open(Path(__file__).parent.parent / 'data\input.json', 'w')
Path(__file__)
的 parent
是脚本本身所在的目录,它的 父级在上一级。这也行得通:
from pathlib import Path
open(Path(__file__).parent / '..\data\input.json', 'w')
如果您不喜欢计算各个模块的相对路径,您也可以考虑为您的应用程序提供一个全局根路径,可从其各个模块访问,这最好取决于具体的应用程序。
这是我的项目结构
我正在使用以下代码在 user_input.get_input.py
文件中打开 input.json
:
open('..\data\input.json', 'w')
当我 运行 get_input.py
文件时,它工作得很好。但是当我 运行 run.py
文件时,它显示了这个错误:
FileNotFoundError: [Errno 2] No such file or directory: '..\data\input.json'
我也尝试过使用完整路径,但没有成功!
那是因为您启动的主脚本的工作目录也是您导入的主脚本的工作目录。您可以在 PyCharm 中的 运行 配置中将工作目录设置为 user_input
,或者在 运行ning from [=14] 时将路径更改为 data\input.json
=].
如果你想要在get_input.py
中独立于工作目录的相对路径,试试这个:
from pathlib import Path
open(Path(__file__).parent.parent / 'data\input.json', 'w')
Path(__file__)
的 parent
是脚本本身所在的目录,它的 父级在上一级。这也行得通:
from pathlib import Path
open(Path(__file__).parent / '..\data\input.json', 'w')
如果您不喜欢计算各个模块的相对路径,您也可以考虑为您的应用程序提供一个全局根路径,可从其各个模块访问,这最好取决于具体的应用程序。