【发布时间】:2017-06-29 04:06:58
【问题描述】:
我尝试使用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')
all 给出以下错误:
FileNotFoundError: File b'\xe2\x80\xaaC:/Users/user/Desktop/tutorial.csv'(或相关路径)不存在。
只有当我将文件复制到工作目录时,它才会正确加载。
是否有人知道可能导致错误的原因?
我之前使用完整文件路径加载了其他数据集,没有任何问题,但我目前只遇到问题,因为我重新安装了我的 python(通过 Anaconda 包安装程序)。
编辑:
我找到了导致问题的原因。
当我从文件属性窗口复制文件路径时,我无意中复制了另一个似乎不可见的字符。
分配复制的 string 也会产生 unicode 错误。
删除该不可见字符使上述任何代码都能正常工作。
【问题讨论】:
-
e2 80 aa是 U+202A 的 UTF-8 编码,从左到右的嵌入符号。很确定这不属于路径字符串,因此它表明您遇到了字符串编码问题。如果您在 py27 (u'C:\\...') 中,请尝试 Unicode 字符串文字;如果您在 py3 (b'C:\\...') 中,请尝试字节字符串文字。 -
如果您从路径中删除驱动器是否有效(即“/Users/user/Desktop/datafile.csv”)?
-
不确定
U+202A是怎么进来的。这是剪切/粘贴的吗?如果是这样,请手动删除并重新输入。您系统上的默认语言是什么?如果它是从右到左写的,那么这很有趣!我有点惊讶该字符没有在文件系统中被过滤掉。 -
最可能的原因似乎是您使用的编码有问题。
-
我也遇到了同样的问题。当我从 Windows 中文件属性的安全选项卡中腼腆文件的路径时,似乎出现了额外的字符。有人知道这个非 unicode 字符是什么吗?
标签: python csv pandas dataframe file-not-found