我的项目的文件夹结构如下
-ExpenseManager
config.ini
Icon.png
__init__.py
+bin
-expenseManager
main.py
charting.py
gui.py
fileHandling.py
此项目位于此路径/ home / sudeshna / Desktop / ExpenseManager中。 main.py具有可执行权限,当我从该目录调用该函数时,我可以运行该程序(在../ ExpenseManager / expenseManager /)内。
但是,当我尝试从基目录[/]调用该函数时,我得到一个NoSectionError。 我发现了它背后的原因,因为我的main.py尝试读取config.ini文件以获取一些信息。 阅读本文的代码是: -
d = Path.dirname(Path.dirname(Path.abspath("__file__")))
my_file = (os.path.join(d,'config.ini'))
parser = SafeConfigParser()
parser.read(my_file)
folder_path = parser.get('folder_structure','path')
我一直试图找到一种方法,使程序读取config.ini的绝对路径,而不管调用此脚本的位置。 直到现在我已经使用了
from pathlib import Path
p = Path("../ExpenseManager/config.ini").resolve()
但它甚至没有从基目录[/]找到ExpenseManager文件夹。
我试图更改这些行
d = Path.dirname(Path.dirname(Path.abspath("__file__")))
my_file = (os.path.join(d,'config.ini'))
到
my_file = os.path.abspath('ExpenseManager/config.ini')
我现在面临的问题是my_file变为
/home/sudeshna/Desktop/ExpenseManager/expenseManager/ExpenseManager/config.ini
而不是
/home/sudeshna/Desktop/ExpenseManager/config.ini
我该怎么办?
答案 0 :(得分:0)
我已经能够解决问题了。但我实际上并不了解造成问题的原因。我改进了以下代码中的代码,
d = Path.dirname(Path.dirname(Path.abspath(__file__)))
保持其他一切相同,我删除了""围绕全局变量
__file__
我现在感到困惑的是
if "__file__" was not working ,
上面的代码段是如何在包含main.py代码的目录中工作的,即(../ExpenseManager/expenseManager)。
欢迎任何进一步的解释。 如果我在做一些概念上的错误,请指导我。