【问题标题】:Reading file from the same directory as the python module从与 python 模块相同的目录中读取文件
【发布时间】:2018-08-02 05:49:26
【问题描述】:

假设我有 python 模块 foo.py 和文件 myfile.txt 位于同一目录中。 foo.py 包含以下代码以读取myfile.txt

from os import path
myfile_path = path.join(path.dirname(__file__), 'myfile.txt')
myfile = open(myfile_path)

我发现自己在不同的模块中一遍又一遍地写path.join(path.dirname(__file__), '...')。有没有更短更简单的方法来从与 python 模块相同的目录中读取文件?

【问题讨论】:

标签: python file path


【解决方案1】:

您可以使用data = open('myfile.txt', 'r').read(),而不使用路径。

【讨论】:

    【解决方案2】:

    我不知道这是否适用于您的确切情况,但这是我发现的:

    应该有一个 JSON 文件来定义调试器的工作方式。对我来说,我使用 VS Code,并使用 Microsoft Python 调试器。它使用一个名为 launch.json 的文件,并包含一个名为 "configurations" 的数组:

    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "internalConsole"
    ]
    

    它缺少一个名为"cwd" 的键,是“当前工作目录”的缩写(您可以阅读更多关于它的信息here)。如果你加上空引号""的值,那么当Python搜索一个没有指定路径的文件时,它会在同一个文件夹中搜索。显示最后几行的样子:

            "program": "${file}",
            "console": "internalConsole",
            "cwd": ""
    ]
    

    要获得更一般的建议,您的调试器或任何其他运行 Python 文件的工具都需要正确定义其工作目录。

    我意识到这篇文章在某个时候已经有 19 个月了,但我希望这对某人有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-23
      • 2016-08-01
      • 1970-01-01
      • 2020-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多