【Python】os.path.exists()的含义 及文件存在但os.path.exists()返回False的原因

os.path.exists()

函数的功能是查看给定的文件/目录是否存在,存在返回True,不存在返回False。

  1. 如果给定的文件只有文件名,会在当前文件的目录下索引。
  2. 给定的文件/目录可以是绝对索引。

文件存在但os.path.exists()返回False

我遇到了这样一个问题:我要索引的目录是D:\Codes\SuperResolution\practice\DL-SR\dataset\train\F-actin\Cell_001
这个目录我确定他是存在的,但os.path.exists('D:\Codes\SuperResolution\practice\DL-SR\dataset\train\F-actin\Cell_001')返回False。

解决方案

在字符串前加上r,即:

import os

os.path.exists(r'D:\Codes\SuperResolution\practice\DL-SR\dataset\train\F-actin\Cell_001')

字符串前加r的作用是防止字符串转义,r表示raw,即告诉编译器后面这段字符串就保持原样就好,不需要做转义。

原因分析

我是这样定位问题的,首先看一下最开始的目录在不在,一个一个查下去发现在索引到文件夹train的时候出现问题。
【Python】os.path.exists()的含义 及文件存在但os.path.exists()返回False的原因_第1张图片
接着看了一下目录下是有train目录的,排除目录不存在的可能性。而后在字符串前加r,就可以索引到目录了。
【Python】os.path.exists()的含义 及文件存在但os.path.exists()返回False的原因_第2张图片
看过解决方案我们就明白了,我这个问题其实是因为编译器把\t转义了,因此索引不到。

总结

遇到文件存在但os.path.exists()返回False的问题大概可以分为两种情况:

  1. 文件确实不存在或索引有错(比如没有直接复制路径,而是手打路径,结果中间字母打错了或者漏打空格之类的)。
  2. 编译器把路径转义了,导致路径错误。

对于第二种情况,解决方案就是在字符串前加r防止转义

你可能感兴趣的:(效率工具,python,开发语言)