【问题标题】:VS Code: Is there a way to read a csv file without needing specification of the full path?VS Code:有没有一种方法可以在不需要指定完整路径的情况下读取 csv 文件?
【发布时间】:2021-04-07 05:31:36
【问题描述】:

我正在尝试从 csv 文件(与我的 main.py 位于同一文件夹中)读取数据,但似乎 Visual Studio Code 不理解项目文件夹或类似的东西

FileNotFoundError: [Errno 2] 没有这样的文件或目录:'ratings.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 osos.chdir 在代码的开头。

但是 PyCharm 不需要上述调整即可运行它。所以我的问题仍然存在,我是否缺少 VSCode 设置?

【问题讨论】:

  • 由于您使用的是相对路径,vscode 和 pycharm 使用不同的cwd 运行代码。很可能,vscode 有一个午餐配置,您可以调整以指定cwd。验证打印os.getcwd()的结果
  • 你是如何运行脚本的?我可以想到 VSCode 中的 3 个选项:绿色运行按钮、调试或从 VS Code 中的终端。
  • @JasonCook 我通常按下右上角的运行代码按钮(对我来说它不是绿色的,包可能会干扰)。调试也有同样的问题。在终端中运行实际上可以正常工作,但我宁愿找到一个内部设置来全局和永久地解决这个问题。
  • 这能回答你的问题吗? stackoverflow.com/questions/41471578/…

标签: python csv visual-studio-code file-read project-folder


【解决方案1】:

我遇到了同样的问题,我通过这样做解决了它:

import pandas as pd

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

print(df)

【讨论】:

    【解决方案2】:

    正如cmets中所说,我们可以在VSCode中设置调试路径,请在“launch.json”中添加如下设置:(调试代码前会自动进入文件所在目录)

    "cwd": "${fileDirname}",
    

    【讨论】:

      【解决方案3】:
      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' )  )
      

      【讨论】:

        【解决方案4】:

        您可以为模块顶部的目录定义一个常量,然后将其用于您需要访问的任何文件。

        from pathlib import Path
        
        DIRNAME = Path(__file__).parent
        
        def func():
            fn = DIRNAME / 'file.suffix'
        
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-07-04
          • 2021-09-08
          • 1970-01-01
          • 1970-01-01
          • 2021-04-10
          • 1970-01-01
          • 2013-06-28
          • 1970-01-01
          相关资源
          最近更新 更多