我有一个类似于以下内容的包
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")
答案 0 :(得分:1)
我认为你错过了这一点。
源代码所在的位置并不重要,相对路径(和纯文件名是相对路径)总是相对于程序进程运行的目录(即您所在的目录)进行解释当您键入python C:\Path\to\my\python\code\code.py
)