如何在Python项目之间共享非源文件?

时间:2019-06-26 15:54:48

标签: python pycharm

这就是我所拥有的:

Project A
----data_I_need.p

Project B
----use_data.py

如果data_I_need.p是源文件(在我的路径中),我可以轻松地将其导入Project B。非源文件是否存在这种方法?

现在,我必须通过

完成此操作
with open('C:/......./data_I_need.p', 'rb') as data:

Project A在我的路径中(在PyCharm中定义为“内容根目录”)。我可以从Project A输入源文件。

1 个答案:

答案 0 :(得分:0)

总而言之,问题在于可以导入PYTHONPATH中的任何Python文件,但是如果没有显式路径,则无法加载资源(非Python文件)。

Project_A
----some_module.py
----data_I_need.p

Project_B
----use_data.py

这是一个解决方案。在Project B/use_data.py中,包括以下内容。

import os
import pathlib
import pickle

# full path to Project_B
here = os.path.dirname(__file__)

# path to folder *above* Project_B ---- joined to Project_A
PROJECT_A = os.path.join(*pathlib.Path(here).parts[:-1], 'Project A')

with open(os.path.join(PROJECT_A, 'data_i_need.p')) as resource:
    var = pickle.load resource

即使您正在使用来自两个不同操作系统的共享驱动器(例如OneDrive),这也将起作用。

(可选)您可以只设置一个“ shared_resources”文件夹,并在该文件夹中包含一个python脚本来访问资源,再次从os.path.dirname(__file__)开始工作,然后浏览相对路径。