当前位置: 首页 > 面试题库 >

如何创建“始终相对于当前模块”的文件路径?

尤俊誉
2023-03-14
问题内容

假设您有一个包含以下内容的模块

myfile = open('test.txt', 'r')

并且“ test.txt”文件位于同一文件夹中。如果您将运行该模块,则文件将成功打开。

现在,假设您从另一个文件夹中的另一个模块导入该模块。不会在与该代码所在的模块相同的文件夹中搜索该文件。

那么如何使模块首先在同一文件夹中搜索具有相对路径的文件?

使用“ __file__”或“
os.getcwd()”有多种解决方案,但我希望有一种更简洁的方法,例如传递给open()或file()的字符串中的相同特殊字符。


问题答案:

解决方案是使用__file__它,它很干净:

import os

TEST_FILENAME = os.path.join(os.path.dirname(__file__), 'test.txt')


 类似资料:
  • 问题内容: 可以说我目前在: 是否可以在此页面上创建指向的相对链接而无需指定任何位置?(并且仅使用HTML。) 更新: 事实证明,它仅在非严格doctype模式下有效,而在两种模式下均可工作,所以我认为它仍然是一个更好的答案:)谢谢大家。 问题答案: 只是点工作。doctype会有所不同,但是有时./也可以。

  • 问题内容: 当我通过相对路径引用CSS文件中的图片或其他文件时,是使用CSS文件相对于CSS文件还是HTML文件的路径? 问题答案: 是的,这是相对于 这是一个示例布局: CSS中:

  • 假设一个目录中有2个文件 在perl5中,我可以通过以下方式从p.pl加载模块Mod.pm: 我想知道的等价物是什么(如果文件是p.raku和Mod.rakumod)? 我想要完成的是相对于脚本加载模块。 我希望在启动脚本之前不设置env变量即可执行

  • 我有一个包含exe的文件夹和一个名为data的文件夹。如何访问当前与C#中的数据文件夹在同一文件夹中打开的exe相关的数据文件夹?

  • 问题内容: 这类似于这个问题,但是我想在Unix中包括相对于当前目录的路径。如果我执行以下操作: 它不包括完整路径。例如,我具有以下目录结构: 上面的代码将返回: 如何使用标准Unix命令使其包含相对于当前目录的路径? 问题答案: 使用查找: 在使用GNU find的系统上,像大多数GNU / Linux发行版一样,您可以省略-print。

  • 问题内容: 我正在尝试使用mac终端创建一个.jar文件,但是有点麻烦。我遵循了这里的步骤,但是没有成功。我收到此错误消息: 那么,您到底要怎么做呢?我的Java程序称为Main.java,我已将其编译为.class文件。现在我该怎么办? 谢谢 问题答案: 1)确保所有必需的文件都在目录中,您已打开终端/命令提示符并导航至该目录。 2)编译.java类,例如HelloWorld.java与 3)这