【问题标题】:Relative path when running vscode python interactive运行vscode python交互时的相对路径
【发布时间】:2020-06-10 10:24:36
【问题描述】:

我正在使用 VSCode。我有以下设置:

.
├── output
│   
└── src
    ├── foo
    │ 
    └── main.py

我有一些代码可以做很多事情,然后创建一个输出 excel 文件。

我正在使用 pandas ExcelWriter 存储我的结果:

writer = pd.ExcelWriter('../output/MyOutput.xlsx', engine='xlsxwriter').

注意,相对路径指向根目录下的文件夹输出。

当我使用 python 终端运行代码时,该文件已正确存储在目录中。

.
├── output
│   └── MyOutput.xlsx
└── src
    ├── foo
    │ 
    └── main.py

但是,当我使用 Run Current File in Python Interactive Window(我假设基于 IPython)运行我的代码时,该文件只是在脚本目录中创建。

.
├── output
│   
└── src
    ├── foo
    │ 
    ├── main.py
    └── MyOutput.xlsx

我相信这与 IPython 的工作方式有关,而不是我的代码中的错误。

所以我的问题是,如何正确编写我的代码,以便在运行交互式窗口和 python 终端时,输出最终都在所需的文件夹中?

奖励:如果我的猜测是正确的并且这是正常的 IPython 行为,您能否指出一些参考资料或解释它是如何工作的?

【问题讨论】:

  • 这似乎不可行,因为您的示例行应该引发错误或在某处创建了一个 output/ 目录来放置文件。让它最终出现在 src/ 中应该是不可能的基于那条线,否则熊猫有一个错误。

标签: python visual-studio-code ipython


【解决方案1】:

如果你运行这段代码:

import os
print(os.getcwd())

你会发现在 VSCode 和 python 交互中它们有不同的环境。因为 os.getcwd() 返回进程的当前工作目录。 可以参考this页面了解python交互窗口的一些基本知识。

【讨论】:

  • 这解释了问题的根源。什么是好的解决方案?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-24
  • 2012-05-10
  • 1970-01-01
相关资源
最近更新 更多