首页 > 解决方案 > python中导入文件的结构问题

问题描述

所以我看到这些帖子不知何故让我了解了如何构建我的文件。(从不同的文件夹导入文件)但不知何故,我的结构有更多的连接,我不知道如何清理(组织它们)。这是我的文件夹结构简介:

Project 
├── main.py (imports u1)
├── _init_.py 
├── Functions1
     ├── _init_.py 
     ├───u1.py (imports u2, gets data in subfolder data for u1)
     ├───Data for u1
     |   └── csv/xlsx files
     ├───u2.py ( gets data in subfolder data for u2)
     ├───Data for u2
     |   └── picture files
     ├───Data for u2
         └── other files
     ├─── main2.py ( imports u1)

├── Functions2
     ├── _init_.py 
     ├───u3.py
     ├───Data for u3
     |   └── csv/xlsx files

main.py当我尝试通过导入 u1 时from Functions1 import u1出现错误module u2 not found。我试过sys.path.insert()了,但是又出现了另一个错误 No such file or directory:(main's path +Data for u1)。现在我知道要解决这个问题,我只需要更正路径(主路径+Function1+u1 的数据),但是我的路径将不再是相对的,我需要在复制目录时不时切换。当我从 main 导入 u1 时,我该如何做到这一点,u1 获取文件的路径来自 u1 的路径(而不是来自 main)?或者以某种方式使结构干净,即使我使用 u1 (from main2.py) 导入仍然正确?

os.path.dirname(os.path.abspath("__file__"))在u1中使用

编辑:添加了初始化文件。我现在唯一的主要问题是如何使路径相对于文件。

我的 u1 有pd.read_csv(os.path.dirname(os.path.abspath("__file__"))+Data for u1+file),但是当它在 main.py 中导入时,使用的路径在 main 中(不在 u1 中)

标签: python

解决方案


在每个模块级别,您需要__ini__.py每个https://stackoverflow.com/a/448279/14306518的文件


推荐阅读