【问题标题】:vscode get path of current file from inside python scriptvscode从python脚本中获取当前文件的路径
【发布时间】:2021-05-20 18:45:58
【问题描述】:

从终端运行时,sys.argv[0] 是当前脚本的路径,但在 python 交互中,该变量指向“/some/path/ipykernel_launcher.py”,这是一个临时文件。

如何获取当前脚本(我在 vscode 中编辑的)的路径?我需要这些信息,因为每当我创建一个文件时,我都会自动记录创建它的脚本。为此,我重载了 open() 函数以自动记录创建。但是当从 python 交互式会话创建文件时,我缺少这些信息。

【问题讨论】:

  • 可能是os.getcwd()?
  • 使用__file__ 变量或inspect 模块。已经回答here
  • 谢谢@koorkevani!该答案中的inspect 策略不起作用,但__file__ 可以!

标签: python visual-studio-code jupyter interactive


【解决方案1】:
import os

print(os.getcwd())

我想这就是你想要的。它打印当前的工作目录。

【讨论】:

  • 对不起,但是这给出了执行路径,顺便说一下,我通常用 os.chdir(some_dir) 设置。确实,在交互式会话开始时,os.getcwd() 是脚本的。 ...无论如何,我错过了文件名。
【解决方案2】:

How do I get the path and name of the file that is currently executing? 获得的适合我的答案是这样的:

os.path.realpath(__file__)

我尝试了所有其他建议,但没有奏效。

【讨论】:

    猜你喜欢
    • 2012-01-21
    • 2018-04-13
    • 2021-11-02
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-06
    相关资源
    最近更新 更多