Python 3.4 - 在具有不同目录的模块中打开文件

时间:2015-03-16 21:26:02

标签: file python-3.4

我有一个类似于以下内容的包

package/
    __init__.py
    module.py

module.py我有类似的东西

def function(file_name):
    with open(file_name) as f:
        # do stuff

在任意目录中的其他地方,我有一个类似于此的

的python文件
import package

package.function("some_file.txt")

但是在运行它时,它会给我FileNotFoundError: [Errno 2] No such file or directory: "some_file.txt"

问题在于some_file.txt的绝对路径可能类似于C:\Users\USER\Documents\some_file.txt,但在package.function中,路径绝对路径类似于C:\Users\USER\Documents\package\some_file.txt。有什么办法可以让它从package.function目录之外的某个文件中调用package自动包含我想要打开的文件的绝对路径吗?

很抱歉,如果我的术语含糊不清,我真的不熟悉os内容。

编辑:我的确切文件设置如下:

directory/
    foo.py
    package/
        __init__.py
        module.py
    another_directory/
        bar.txt

foo.py看起来与此完全相同

import package

package.function("another_directory/bar.txt")

1 个答案:

答案 0 :(得分:1)

我认为你错过了这一点。

源代码所在的位置并不重要,相对路径(和纯文件名相对路径)总是相对于程序进程运行的目录(即您所在的目录)进行解释当您键入python C:\Path\to\my\python\code\code.py