1
这是我尝试构建专业结构/层次结构的第一个python项目。我有以下目录结构:Python:从相关路径加载非python文件的子目录导入模块
project/
---__init__.py
---main.py
---data_lib/
------__init__.py
------load.py
------file.csv
在load.py的代码是:
import pandas as pd
def load_csv():
print pd.read_csv('file.csv')
if __name__=='__main__':
load_csv()
在main.py的代码是:
from data_lib.load import load_csv
load_csv()
当运行load.py我自己获得了加载的csv文件的熊猫数据框的打印输出。当main.py运行时,我得到错误IOError:文件file.csv不存在。我可以通过添加“之前FILE.CSV”的路径前缀解决这个定义为:
if __name__=='__main__':
path_prefix=''
else:
path_prefix='data_lib/'
这是标准的解决方案和编程习惯或者我应该避免这一点,做别的事情,而不是(尤其是因为csv文件将会在没有任何其他代码文件受到影响的情况下定期更新)?
谢谢,这是有帮助的,并且一个简单的改变。我知道在这个例子中命名我的文件file.csv会有问题。读者应该注意\ __ file__是一个内置的名称,并且与我的文件名无关! – Attack68
是的,'__file__'是一个内置的,它给出你的模块被调用的文件的路径名。此外,值得接受这个答案,如果它解决了你的问题。 –