如何获得python代码的完整路径

如何获得python代码的完整路径,python,path,spyder,filepath,Python,Path,Spyder,Filepath,我想打印python代码的路径和文件名 例如,“my_目录/my_子目录/my_python\u代码\u名称” 我尝试了不同的方法,比如导入系统、操作系统 然后是以下任何一项: sys.argv[0] print('sys.argv[0] =', sys.argv[0]) print('full path =', os.path.abspath(pathname)) os.path.realpath(__file__) 这些都不管用。 我正在使用spyder。我不确定这是否为时已晚

我想打印python代码的路径和文件名

例如,“my_目录/my_子目录/my_python\u代码\u名称”

我尝试了不同的方法,比如导入系统、操作系统 然后是以下任何一项:

sys.argv[0] 
print('sys.argv[0] =', sys.argv[0])  
print('full path =', os.path.abspath(pathname)) 
os.path.realpath(__file__)  
这些都不管用。
我正在使用spyder。

我不确定这是否为时已晚,但也许这个答案可以帮助其他人。通常,要获取文件路径,您需要执行以下操作:

import os
print('Full path:', __file__)
print('Full path without file name:', os.getcwd())
print('Name of the file:', os.path.basename(__file__))
但是,如果您使用交互式提示作为Spyder或Jupyter Notebook的提示,则使用
\uuuuuuuu文件\uuuuuuuuuuu
可能不起作用

在后一种情况下,您可以在单元格中写入以下内容:

%%javascript
IPython.notebook.kernel.execute('notebook_name = "' + IPython.notebook.notebook_name + '"')
这样,您就可以定义变量
notebook\u name
,该变量的名称为执行的
.ipynb
文件

为了更好地回答这个问题,在Spyder中,您可以从一个临时python文件中执行代码,该文件与普通python脚本完全相同,您可以使用上面的第一段代码


但是,从您的回答中,我了解到您正在从Spyder IPython控制台执行代码,而该控制台实际上没有要显示的文件名。如果你真的想显示一个名字,你应该考虑使用一个脚本。

这些方法对你来说怎么办?你得到了什么,你期望得到什么?这是否回答了你的问题?到@Claudia:a)print('没有文件名的完整路径:',os.getcwd())=>这个工作很好。b) 打印('完整路径:',文件)==>产生以下错误:NameError:未定义名称“文件”。c) 最后一个命令给出了相同的错误。有什么解决办法吗?从你的回答来看,我认为你键入的是
文件
,而不是
\uuuuuuuuuuuuuuuuu
。在“file”字之前和之后有两个低破折号“u”。到@Claudia。抱歉,由于某些原因,低破折号不会显示在我的复制/粘贴中。我确实有它们,我收到错误消息说它没有定义。@Rick,我想你可能是在试图从交互提示执行脚本。事实上,
\uuuuuu文件
仅为Python脚本和模块定义。我已经更新了我的答案,让我知道它是否解决了问题。您的第一个建议产生了UsageError:%%javascript是一个单元格魔法,但单元格正文是空的。您的第二个建议产生NameError:名称“sys”未定义任何想法?谢谢