VS代码中的相对路径不一致

Relative pathway inconsistency in VS code

我最近转移到双启动 Windows/Ubuntu 系统并在两者之间共享了我的脚本和 VScode 工作区。

因为我在两个不同的 OS 之间工作,所以我确保更改所有文件路径以使用相对路径而不是绝对路径。然而,它们在 VScode un ubuntu.

中似乎都损坏了

我制作了一个简单的文件结构来尝试找出问题所在,但我运气不好

- Directory1:
  - csv1.csv
  - Directory2:
    - csv1.csv
    - test.py

对于 test.py,我编写了一个超级简单的脚本来将 csv 文件加载到 Pandas 数据帧中

import pandas as pd

df  = pd.read_csv("../csv1.csv")

print(df)

df = pd.read_csv("../csv1.csv")此相对路径适用于 Ubuntu shell 、Windows cmd 和 VS 代码(在 windows 上)

df1 = pd.read_csv("Directory1/Directory2/csv2.csv") 此相对路径适用于 VS 代码(在 Ubuntu 中)

我不知道该怎么做,我试过四处搜索。如果我在 VScode(在 Ubuntu)中打开相同的工作区并尝试引用同一目录中的文件,我会收到一条错误消息,通知我它不存在。

您需要使用标准库 pathlib 中的 Path 对象而不是常规字符串

https://docs.python.org/3/library/pathlib.html

这将避免 Posix 和 Windows 之间的差异导致这些问题

from pathlib import Path
import pandas as pd

p = Path('..') / 'csv1.csv'

df  = pd.read_csv(p)

print(df)