Python--软件目录结构

目的不必多说:提高项目可读性、可维护性

软件目录结构示例:

Game/
|-- bin/
|   |-- game.py
|
|-- core/
|   |-- tests/
|   |   |-- __init__.py
|   |   |-- test_main.py
|   |
|   |-- __init__.py
|   |-- main.py
|
|-- logs/
|   |-- err.log
|   |-- run.log
|
|-- conf/
|   |-- setting.py
|   |-- abc.rst
|
|-- setup.py
|-- requirements.txt
|-- README

那么问题来了,当类似于如上的目录结构时,我怎么在game.py中去调用setting.py或者main.py中的函数呢???

解(有解给2分):

首先,需要通过os.path.abspath(__file__)获取到game.py的绝对路径,进而方便找到setting.py文件的位置

然后,再通过os.path.dirname()方法回到文件的父级目录以及更上级的目录

最后,将项目的绝对路径通过sys.path.append()添加到系统环境变量中

此时,就可以调用啦,上栗子(真香!!!)

setting.py

1 def Aset():
2     print("这里是配置")

main.py

1 def hello(name):
2     print("hello,%s,这里是主函数" % name)

game.py

 1 import  os
 2 import sys
 3 
 4 print(os.path.abspath(__file__))
 5 print(os.path.dirname(os.path.abspath(__file__)))
 6 print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 7 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 8 sys.path.append(BASE_DIR)
 9 
10 from conf import setting
11 from core import main
12 
13 setting.Aset()
14 main.hello("tj")
15 
16 >>>
17 F:\Python\资料\第二次学习\study\week4\day06\Game\bin\game.py
18 F:\Python\资料\第二次学习\study\week4\day06\Game\bin
19 F:\Python\资料\第二次学习\study\week4\day06\Game
20 这里是配置
21 hello,tj,这里是主函数
posted @ 2020-06-10 23:23  NorthFeng  阅读(428)  评论(1编辑  收藏  举报