0

我有一个使用当前路径加载数据的函数,如下所示open('./filename', 'rb'):当我从位于同一包中的模块调用它时,它可以工作,但是当我从不同包中的模块导入它的包并调用它时,我收到一条错误消息,告诉我路径'./filename'不存在。该错误是由调用引发的open。是什么原因造成的,我该如何解决?

4

1 回答 1

2

我不知道最佳实践,但模块有一个__file__属性设置为加载它们的文件名称的字符串表示形式。因此,您可以这样做:

import os.path

# Get the directory this module is being loaded from
module_directory = os.path.dirname(__file__)

# Get the path to the file we want to open
file_path = os.path.join(module_directory, 'filename')

with open(file_path, 'rb') as f:
    # do what you want with the file
于 2013-07-12T06:33:07.663 回答