Pandas.read_csv() FileNotFoundError 即使文件存在

问题描述 投票:0回答:3

我尝试在我的 Anaconda Jupyter Notebook 中运行这段 Python 3 代码(同一单元格,没有其他内容):

train  = pd.read_csv('tutorial\labeledTrainData.tsv', header=0, delimiter="\t", quoting=3) #OK!
test   = pd.read_csv('tutorial\testData.tsv',         header=0, delimiter="\t", quoting=3) #FileNotFoundError!

第一行运行得很好,但第二行出现错误:

FileNotFoundError: [Errno 2] File b'tutorial\testData.tsv' does not exist: b'tutorial\testData.tsv'
相应

tutorial 文件夹中的 dir 命令给出:

06.12.2019  15:38    <DIR>          .
06.12.2019  15:38    <DIR>          ..
05.05.2018  20:07        33 556 378 labeledTrainData.tsv
05.05.2018  20:07           282 796 sampleSubmission.csv
05.05.2018  20:07        32 724 746 testData.tsv
05.05.2018  20:07        67 281 491 unlabeledTrainData.tsv

即“问题”文件 testData.tsv 就在那里,在“好”文件 labeledTrainData.tsv 旁边。

如果我更改第二行的斜线方向并像这样运行它:

train  = pd.read_csv('tutorial\labeledTrainData.tsv', header=0, delimiter="\t", quoting=3) #OK!
test   = pd.read_csv('tutorial/testData.tsv',         header=0, delimiter="\t", quoting=3) #OK!

然后两条线都运行得很好。同样,如果我将 r 放在问题文件名之前,它们就可以正常运行:

test   = pd.read_csv(r'tutorial\testData.tsv',         header=0, delimiter="\t", quoting=3) #OK!

我检查了两个文件的属性 - 没有一个是隐藏的,也不是只读的,权限是相等的,等等。

更改单元格中的行顺序不会更改错误 - 同一文件有问题...

我想知道pandas(或python?)在第二行代码中看到了什么问题,而我没有看到?

python pandas file csv file-io
3个回答
3
投票

Python 将

\t
解释为字符串
'tutorial\testData.tsv'
中的制表符。

正如您所发现的,您可以通过使用

r"..."
将其指示为 raw-string 来更改此设置,这意味着 python 会忽略反斜杠。


1
投票

试试这个方法。

test = pd.read_csv('tutorial\testData.tsv', header=0, delimiter=r'\t',quoting=3)


0
投票

尝试使用完整路径(从“C:”开始)

© www.soinside.com 2019 - 2024. All rights reserved.