我正在尝试建立相对路径。在我的.py脚本中运行以下行时
this_path = os.path.abspath(os.path.dirname(__file__))
我收到名称错误。几天前,它曾经工作过,但是现在已经不复存在了。我没有在shell中执行此操作,只是照常运行脚本。
os.path.dirname(sys.argv[0])
仅返回一个空字符串。当我使用"__file__"
时
而是返回主目录,但不返回文件的路径。我认为__file__
会在我在脚本中加载模块后立即设置为文件路径。有人知道我要去哪里了吗?
更多信息:我的.py脚本位于“ C:/ Users / corr / Documents / Uni / Thesis / Code /”的文件夹中,我想构造一个相对路径,以便可以访问“ C”文件夹中的数据文件:/用户/ corr /文档/ Uni /论文/数据/”。当我设置脚本时,以下几行有效:
this_path = os.path.abspath(os.path.dirname(__file__))
path = os.path.join(this_path, "../Data")
现在,当我运行第一行时,我得到一个NameError:__file__
未定义。当我用"__file__"
运行同一行时,它返回“ C:\ Users \ corr”。另外,我正在Spyder环境中执行脚本,因为这是我通常的工作方式。
答案 0 :(得分:0)
app.post('/add-project', function(req, res){
var subtasks = [];
var subtasks = req.body.subtasks;
console.log(subtasks[0].subtaskname);
});
是set for modules,而不是应该使用__file__
的脚本。 (在某些情况下,sys.argv[0]
是用于通过argv[0]
查找程序的基本名称。)Spyder显然将其设置为空字符串(或者在一个{{3 }}将PATH
设置为空的 list ),因此您可能需要做一些愚蠢的事情,如
argv
同时,使用def f(): pass
print(f.__code__.co_filename)
(字符串文字)仅表示该名称的文件。 "__file__"
为此返回一个空字符串(因为它没有斜杠),许多Python函数(如path.dirname
)将其解释为当前工作目录(对于Spyder来说,显然是您的主目录)。 / p>