尽管原始文本的路径正确,但找不到pandas.read_csv文件

时间:2017-02-10 17:48:29

标签: python csv pandas dataframe file-not-found

我在尝试使用.csv函数加载pd.read_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:文件b' \ xe2 \ x80 \ xaaC:/Users/user/Desktop/tutorial.csv' (或相关路径)不存在。

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

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

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

修改
我发现了引起问题的问题 当我从文件属性窗口复制文件路径时,我无意中复制了另一个看似不可见的字符 分配复制的string也会产生unicode错误。

删除该隐形字符可使上述任何代码生效。

15 个答案:

答案 0 :(得分:16)

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

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

此处r是一个特殊字符,表示回车。因此,请将其作为字符串文字的前缀。

答案 1 :(得分:3)

$ 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,它将起作用。

答案 2 :(得分:2)

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

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

希望它可以帮助其他任何人。

答案 3 :(得分:2)

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)

答案 4 :(得分:1)

如果您使用的是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 ,请将其重命名/更正为 fileName.csv

windows 10 screen shot

希望它能奏效, 祝你好运

答案 5 :(得分:1)

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

它规范化了路径名的大小写。在Unix和Mac OS X上,这将返回不变的路径。在不区分大小写的文件系统上,它将路径转换为小写。在Windows上,它也将正斜杠转换为反斜杠。如果路径类型不是str或字节(直接或间接通过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)))

答案 6 :(得分:1)

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

答案 7 :(得分:0)

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

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

答案 8 :(得分:0)

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

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

答案 9 :(得分:0)

关于如何删除看起来不可见的字符还有另一个问题。

我的解决方案是从文件窗口而不是属性窗口复制文件路径。

没有问题,只不过您应该填写文件路径。

答案 10 :(得分:0)

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

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

可能是空格或“ /”

答案 11 :(得分:0)

代替pd.read_csv('yourDirectory\yourData.csv') 使用pd.read_csv('yourDirectory//yourData.csv')

答案 12 :(得分:0)

对于我的特定问题,无法正确加载文件是由于在Windows中从文件属性的安全性选项卡复制文件路径时引入了“不可见”字符。

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

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

答案 13 :(得分:0)

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

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

答案 14 :(得分:-1)

在Jupyter笔记本中,我添加了sep = ',',下面的代码运行正常

train_df = pd.read_csv("titanic_train.csv",sep = ',',index_col = 'PassengerId')