pandas.read_csv FileNotFoundError: File b'\xe2\x80\xaa<etc>' despite correct path

pandas.read_csv FileNotFoundError: File b'\xe2\x80\xaa<etc>' despite correct path

我尝试使用 pd.read_csv() 函数加载 .csv 文件时遇到错误,尽管文件路径正确且使用原始字符串。

import pandas as pd
df = pd.read_csv('‪C:\Users\user\Desktop\datafile.csv')
df = pd.read_csv(r'‪C:\Users\user\Desktop\datafile.csv')
df = pd.read_csv('C:/Users/user/Desktop/datafile.csv')

全部给出以下错误:

FileNotFoundError: File b'\xe2\x80\xaaC:/Users/user/Desktop/tutorial.csv' (or the relevant path) does not exist.

只有当我将文件复制到工作目录时,它才能正确加载。

有人知道可能导致错误的原因吗?

我之前使用完整文件路径加载其他数据集没有任何问题,我目前只是遇到问题,因为我重新安装了 python(通过 Anaconda 软件包安装程序)。


编辑:
我找到了导致问题的原因。
当我从文件属性 window 复制文件路径时,我无意中复制了另一个似乎不可见的字符。
分配复制的 string 也会给出 unicode 错误。

删除那个不可见的字符会使上述任何代码都起作用。

尝试使用 os.path.join 创建文件路径:

import os
f_path = os.path.join(*['C:', 'Users', 'user', 'Desktop', 'datafile.csv'])
df = pd.read_csv(f_path)

$10 表示您的文件路径相对于 .py 文件的位置是正确的,但相对于您调用 python

的位置不正确

例如,假设 script.py 位于 ~/script/,而 file.csv 位于 ~/.假设 script.py 包含

import pandas
df = pandas.read_csv('../file.csv') # correct path from ~/script/ where script.py resides

如果来自 ~/ 你 运行 python script/script.py,你将得到 FileNotFound 错误。但是,如果来自 ~/script/ 你 运行 python script.py,它将起作用。

试试这个,看看它是否有效。这与您提供的路径无关。

pd.read_csv(r'C:\Users\aiLab\Desktop\example.csv')

这里的r是一个特殊字符,表示原始字符串。所以把它作为你的字符串文字的前缀。

https://www.journaldev.com/23598/python-raw-string:

Python raw string is created by prefixing a string literal with ‘r’ or ‘R’. Python raw string treats backslash () as a literal character. This is useful when we want to have a string that contains backslash and don’t want it to be treated as an escape character.

我知道以下是一个愚蠢的错误,但这可能是您的文件的问题。

我已将文件从 adfa123 手动重命名为 abc.csv。文件扩展名被隐藏,重命名后,Actual File name 变成abc.csv.csv。然后我从名称中删除了额外的 .csv,一切都很好。

希望对大家有帮助。

import pandas as pd

path1 = 'C:\Users\Dell\Desktop\Data\Train_SU63ISt.csv'
path2 = 'C:\Users\Dell\Desktop\Data\Test_0qrQsBZ.csv'

df1 = pd.read_csv(path1)
df2 = pd.read_csv(path2)

print(df1)
print(df2)

我试图从我的“c:\”驱动器中的文件夹中读取 csv 文件,但是,它引发了 escape,type error, unicode 的错误......因此但是这段代码有效 只需取一个变量然后添加 r 即可读取它。

rank = pd.read_csv (r'C:\Users\DELL\Desktop\datasets\iris.csv') 
df=pd.DataFrame(rank)

还有一个问题是如何删除那些看似不可见的字符。

我的解决方案是从文件 windows 而不是 属性 windows.

复制文件路径

没问题,只是您应该填写文件路径。

遇到了同样的问题。路径是正确的。 更改文件名似乎可以解决问题。

旧文件名:2017/2018 赛季 Premier League.csv 新文件名:test.csv

可能是空格或“/”

如果您使用的是windows机器。尝试检查文件扩展名。 文件保存为 fileName.csv.txt 而不是 fileName.csv 的可能性很高 您可以通过选择文件夹选项下的文件扩展名复选框来检查这一点(请查找屏幕截图)

以下代码对我有用:

import pandas as pd
df = pd.read_csv(r"C:\Users\vj_sr\Desktop\VJS\PyLearn\DataFiles\weather_data.csv");

如果fileName.csv.txt,rename/correct就fileName.csv

windows 10 screen shot

希望它有效, 祝你好运

在 Windows 系统上,您应该尝试使用 os.path.normcase

规范路径名的大小写。在 Unix 和 Mac OS X 上,此 returns 路径不变;在不区分大小写的文件系统上,它将路径转换为小写。在 Windows 上,它还将正斜杠转换为反斜杠。如果路径类型不是 str 或 bytes(直接或间接通过 os.PathLike 接口),则引发 TypeError。

import os
import pandas as pd

script_dir = os.getcwd()
file = 'example_file.csv'
data = pd.read_csv(os.path.normcase(os.path.join(script_dir, file)))

当 运行 具有 Visual studio 提供的交互功能的文件时,我遇到了同样的问题。在本机命令行上切换到 运行,它对我有用。

对于我的特殊问题,未能正确加载文件是由于我从 windows 中的文件属性的安全选项卡复制文件路径时引入的 "invisible" 字符。

这个字符是e2 80 aa,U+202A的UTF-8编码,从左到右的嵌入符号。当您找到字符(字符串中最左边的字符)时,可以通过擦除(按退格键或删除)轻松删除它。

注:我之所以选择回答是因为这里的答案并没有回答我的问题,而且我相信一些人(如评论中所见)可能会遇到与我相同的情况。由于我没有将此问题标记为已解决,因此似乎时不时会有新的答案。

data = pd.read_csv('C:\Users\username\Python\mydata.csv')

这对我有用。请注意 "C:\" 中的双“\\”,其余文件夹仅使用一个“\”。

我在使用 JupyterLab + Anaconda 时遇到了类似的问题,并使用我的浏览器在 IDE 上输入内容。

我的问题比较简单 - 有一个非常细微的拼写错误。我不必使用原始文本 - 转义或使用 {{r}} 字符串对我有用:)。如果您将 Anaconda 与 Jupyter Lab 一起使用,我相信内核从您打开笔记本的位置开始,即工作目录是顶级文件夹。