从 PyCharm 中同一项目中的文件导入数据?

Import data from files in same project in PyCharm?

这是一个简单的问题,但我正在努力解决它。我在 PyCharm Community Edition 2021.1.1 中打开了一个项目。我有一个包含数据的 .npy 文件,它位于 src -> folder_name -> numpy_file.npy。然后,我在同一项目的另一个目录下有一个 Python 文件,位于 src -> folder_two -> python_code.py。在我的 Python 文件中,我尝试使用以下方式加载 numpy 文件数据:

np.load('folder_name/numpy_file.npy')

但是它告诉我没有这样的文件或目录。

我已将 'src' 标记为我的源根目录。我还缺少什么?谢谢。

这完全取决于您的 Python 程序执行的当前目录。如果它从 folder_two 开始,那么您应该通过“向上”一级打开文件: '../folder_name/numpy_file.npy'

最简单的方法是使用 import osprint(os.getcwd()) 检查您的当前路径并从那里导航 - 您可能位于与您想象的不同的文件夹中。据我所知,定义源文件夹并不意味着这是您当前的工作目录。您在 Working directory 的 运行 配置中定义此类内容。此外,使用 os 您可以根据需要更改目录,例如os.chdir("..") 上一级文件夹等


编辑

为了进一步详细说明问题 - 我尝试重现您的情况:

  1. 在名为 src 的文件夹中创建了一个新的 pyCharm 项目(纯 python,没有 venv,没有欢迎脚本)
  2. 我创建了子文件夹 folder_onefolder_two
  3. folder_one 中,我创建了一个文本文件,其中包含一个名为 my_file.txt
  4. 的示例文本
  5. folder_two 中,我创建了一个名为 sub_module.py 的 python 文件,与您的文件相同。
  6. 我将 src 定义为源根目录(我认为这不是必需的):在 PyCharm 项目树中 > 右键单击​​ src 文件夹 > 将目录标记为 > 源根目录
  7. 我创建了一个 运行 配置:
    • 脚本路径:您的 sub_module.py
    • 的路径
    • 工作目录:src 文件夹的路径
    • 其余可以为空

最后,这是我的 sub_module.py 文件的内容:

print("Im in folder: " + os.getcwd())

# Here i define which file i want to access - taking for granted we are in the src folder already
other_file = "folder_one" + os.sep + "my_file.txt"

# Here i check if the file really exists
if os.path.isfile(other_file):
    
    # Here i do some operations with the file and demonstrate os.path.abspath, which is not even needed
    print("I can access file " + os.path.abspath(other_file))
    with open(other_file) as f:
        print(f.read())

这个returns我my_file.txt的内容。我还上传了压缩的 PyCharm 项目 here (我不知道它是否完全合法)。希望这有助于联系。