【发布时间】:2020-03-31 13:01:39
【问题描述】:
我尝试在我的 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'
dir 命令在相应的 tutorial 文件夹中给出:
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?)在第二行代码中看到了什么,而我没有看到?
【问题讨论】:
-
如果您要寻找更通用的解决方案,请查看pathlib 模块
-
在路径中使用正斜杠
/或双反斜杠代替反斜杠 ``。 -
感谢您对我的问题的评论。是的,就像我最初提到的那样,
r,反斜杠/- 他们都工作得很好。我的问题是为什么两行相同的代码 - 一个有效,另一个失败?是什么导致第二行抛出异常,而第一行在相同条件下工作正常?
标签: python pandas file csv file-io