【问题标题】:File Not Found trying to open CSV using Pandas [duplicate]尝试使用 Pandas 打开 CSV 时未找到文件 [重复]
【发布时间】:2021-07-18 23:04:35
【问题描述】:

我遇到了一个似乎无法解决的小问题。我的程序要求用户输入 .csv 文件的路径,然后程序对其进行处理。这是我的代码:

import pandas as pd

path = input("Please enter a path to a .csv file")
data = pd.read_csv(path)

我在终端中运行它,因此将文件拖入其中会产生我认为的绝对路径。路径看起来像/Users/me/Downloads/sample.csv,错误消息是FileNotFoundError: [Errno 2] File b'/Users/me/Downloads/sample.csv ' does not exist: b'/Users/me/Downloads/sample.csv '

我试图在它前面连接一个 r,以便它将其视为原始字符串(这是我的 google 搜索产生的),但这只是将 r's 放在路径中。所以我的问题是这些 b 在路径之前来自哪里以及如何使这个变量路径起作用?

【问题讨论】:

  • 该文件路径的末尾似乎有一些额外的空格。
  • 看起来像,但我只是将文件拖到终端中,所以我不确定为什么会发生这种情况/成为问题
  • 为什么不path.strip()?在程序运行之后,您不能将字符串设为原始字符串——原始字符串与在源代码中出现的字符串文字中字节的解释方式有关。您使用的是什么操作系统?我假设是 windows,但最好是明确的。出于这样的原因,使用参数而不是 input() 提示可能会更好,所以更多地说明为什么需要使用 input() 会很有帮助。
  • 我不明白您如何将文件“拖入”input() 语句...
  • 如果您在 Mac 上将文件拖到终端中,它会在路径周围添加引号,请尝试通过右键单击将路径复制到文件并将其粘贴进去。

标签: python pandas csv


【解决方案1】:

回答您的问题:b 前缀表示您的路径值是byte literal,而不是字符串。

看看available Pandas documentation,似乎read_csv 需要一个字符串值作为路径。尽管它可以接受字节文字值,但它可能无法以预期的方式处理它。

answer provides a good distinction 位于字符串(字符序列)和字节文字(字节序列)之间,this one demonstrates 是您可以将 decode 字节文字转换为字符串值的一种方式

【讨论】:

  • 我试图做 path.decode() 并且它说 AttributeError: 'str' object has no attribute 'decode' 所以我现在有点困惑
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
  • 2019-06-29
相关资源
最近更新 更多