我尝试在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!
我检查了两个文件的属性-没有一个是隐藏的,也不是只读的,权限是否相等,等等。
更改单元格中的行顺序不会更改erorr-同一文件有问题...
我想知道 pandas (或 python ?)在第二行代码中看到了什么问题,我看不到?
答案 0 :(得分:3)
Python会将\t
解释为字符串'tutorial\testData.tsv'
中的一个制表符。
您可以通过使用r"..."
将其表示为raw-string来更改此设置,这意味着python会忽略反斜杠。
答案 1 :(得分:1)
尝试这种方式。
test = pd.read_csv('tutorial\testData.tsv', header=0, delimiter=r'\t',quoting=3)
答案 2 :(得分:0)
您是否尝试过使用完整路径? (从“ C:\”开始)