Python 3.4 - 在具有不同目录的模块中打开文件
Python 3.4 - Opening a file in a module with a different directory
我有一个如下所示的包裹
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
目录外的某个文件调用 package.function
自动包含我要打开的文件的绝对路径?
抱歉,如果我的术语真的含糊不清,我真的不熟悉 os
东西。
编辑:我的确切文件设置如下所示:
directory/
foo.py
package/
__init__.py
module.py
another_directory/
bar.txt
而 foo.py
看起来完全像这样
import package
package.function("another_directory/bar.txt")
我认为你没有抓住重点。
源代码位于何处并不重要,相对路径(和纯文件名是相对路径)总是相对于程序进程运行的目录(即. 键入 python C:\Path\to\my\python\code\code.py
)
时所在的目录
我有一个如下所示的包裹
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
目录外的某个文件调用 package.function
自动包含我要打开的文件的绝对路径?
抱歉,如果我的术语真的含糊不清,我真的不熟悉 os
东西。
编辑:我的确切文件设置如下所示:
directory/
foo.py
package/
__init__.py
module.py
another_directory/
bar.txt
而 foo.py
看起来完全像这样
import package
package.function("another_directory/bar.txt")
我认为你没有抓住重点。
源代码位于何处并不重要,相对路径(和纯文件名是相对路径)总是相对于程序进程运行的目录(即. 键入 python C:\Path\to\my\python\code\code.py
)