从与python模块相同的目录中读取文件

时间:2018-02-22 11:32:54

标签: python file path

假设我有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模块读取同一目录中的文件?

2 个答案:

答案 0 :(得分:1)

我不知道这是否适用于您的实际情况,但这是我所发现的:

应该有一个定义调试器工作方式的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个月的历史了,但我希望这对某人有帮助!

答案 1 :(得分:1)

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