假设我有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模块读取同一目录中的文件?
答案 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()
,而无需使用路径。