Код VS: есть ли способ прочитать файл csv без указания полного пути?

Я пытаюсь прочитать данные из файла csv (в той же папке, что и мой main.py), но кажется, что Visual Studio Code не понимает папку проекта или что-то в этом роде

FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'rating.csv'

Вот мой код

      import numpy as np
import pandas as pd


# read data with panda, only the columns that are needed
r_cols = ['user_id', 'movie_id', 'rating']
ratings = pd.read_csv('ratings.csv', sep=';', names=r_cols, usecols=[1, 2, 3], encoding="ISO-8859-1", low_memory=False, header=0)

Добавление полного пути к файлу устраняет проблему, и это также работает, если я добавлю import os с os.chdir в начале кода.

Но PyCharm не требует вышеуказанных настроек для его запуска. Итак, мой вопрос остается, есть ли параметр VSCode, который мне не хватает?

4 ответа

Решение

Как упоминалось в комментариях, мы можем установить путь отладки в VSCode, пожалуйста, добавьте следующие настройки в " launch.json": (Перед отладкой кода он автоматически перейдет в каталог, в котором находится файл)

      "cwd": "${fileDirname}",

У меня такая же проблема, и я решил ее, выполнив следующие действия:

      import pandas as pd

df = pd.read_csv('Pandas/sample.csv')

print(df)
      import os

def infolder_file( filename ):
    afname = os.path.abspath(__file__)
    current_folder = os.path.dirname(afname)
    uf = os.path.join(current_folder, filename )
    return uf

print( infolder_file( 'anyfilename.txt' )  )

Вы можете определить константу для каталога в верхней части вашего модуля, которую затем будете использовать с любыми файлами, к которым вам нужно получить доступ.

      from pathlib import Path

DIRNAME = Path(__file__).parent

def func():
    fn = DIRNAME / 'file.suffix'

Другие вопросы по тегам