file = "movement/father"
在vscode中使用终端就可以运行成功,但是使用vscode的交互式窗口就运行失败,如图
file = "father"
在vscode中使用交互式窗口就可以运行成功,但是终端就运行失败,如图
工作目录不一样,终端是在 python 文件夹,iPython 是在文件同一目录下
不知道你这个问题是否已经解决, 如果还没有解决的话:首先,我们需要了解在vscode中运行Python程序时文件夹路径的表示方法。在vscode的终端中,路径表示方式为以“/”作为分隔符的绝对路径或相对路径;而在交互式窗口ipykernel中,路径表示方式为以“\”作为分隔符的绝对路径或相对路径。所以我们需要针对这个差异来解决问题。
解决方法如下:
import os
file_path = os.path.join("father", "file_name")
这样可以自动适应不同平台上的路径表示方式。
在程序中加入以下代码可以自动判断当前运行环境:
import os
if os.environ.get('TERM_PROGRAM') == 'vscode':
file_path = os.path.join("father", "file_name")
else:
file_path = "/disk_name/father/file_name"
该代码会首先判断当前是否运行于vscode环境中,若是,则使用相对路径表示法;否则使用绝对路径表示法。
以上两个方法都是较为通用的解决方案,可以解决vscode终端与ipykernel环境下路径表示的差异问题。