假设有这样1个目录结构:
demo
-- main.py
---- hello
------ username
-------- __init__.py
-------- username.txt
-------- main.py
------ address
-------- __init__.py
-------- address.txt
-------- main.py
---- common
------ utils.py
现在想在common的utils中编写1个公用函数,主要用于读取hello下目录下的静态文件,在这里假定其函数名称为get_filename_data
,其代码类似如下:
def get_filename_data(filename):
data = open(filename).read()
return data
现在想在username及address包下的main模块中将上面common包下utils模块中的get_filename_data
导入进来,传入1个文件名称即可读取当前包下的静态文件。
比如,在username包的main模块下有这样一段代码:
from common.utils import get_filename_data
def main():
data = get_filename_data('userame.txt')
print(data)
同理,address模块中的代码也类似。
最后,在demo包的main模块中将hello包下模块导入:
from hello.username.main import main
main()
现在希望对get_filename_data
函数中的代码进行修改,当运行demo包下main模块,程序可以正常运行,而不会出现找不到文件的情况的发生。
调用get_filename_data的时候传文件完整路径呗。
比如:在username的main函数里: