os.path.isfile 使用误区

Posted Deen12520

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了os.path.isfile 使用误区相关的知识,希望对你有一定的参考价值。

下列这几条语句,看出什么问题了不?
for file in os.listdir(path):         if os.path.isfile(file) and os.path.splitext(file)[1] == '.txt':             #打开txt文件,并提取数据
冥思苦想,没错啊,为啥 os.path.isfile(file)返回的就是false呢。 >>> os.listdir(path) ['cg.A.1.txt', 'cg.A.128.txt', 'cg.A.16.txt', 'cg.A.2.txt', 'cg.A.256.txt', 'cg. A.32.txt', 'cg.A.4.txt', 'cg.A.512.txt', 'cg.A.64.txt', 'cg.A.8.txt', 'cg.B.1.tx t', 'cg.B.128.txt', 'cg.B.16.txt', 'cg.B.2.txt', 'cg.B.256.txt', 'cg.B.32.txt', 'cg.B.4.txt', 'cg.B.512.txt', 'cg.B.64.txt', 'cg.B.8.txt', 'cg.C.1.txt', 'cg.C.1 28.txt', 'cg.C.16.txt', 'cg.C.2.txt', 'cg.C.256.txt', 'cg.C.32.txt', 'cg.C.4.txt ', 'cg.C.512.txt', 'cg.C.64.txt', 'cg.C.8.txt', 'cg.D.128.txt', 'cg.D.16.txt', ' cg.D.256.txt', 'cg.D.32.txt', 'cg.D.512.txt', 'cg.D.64.txt'] >>> files = os.listdir(path) >>> os.path.isfile(files[1]) False
试验了多次,仍然是False, 我去,什么鬼.....
开始Google,看到一些目录操作,无果....
遂查看python自带帮助,终于找到了答案,泪奔....
os.path. isfile ( path )

Return True if path is an existing regular file. This follows symbolic links, so both islink() and isfile() can be true for the same path.



注意:path是路径..... 而我传的是一个文件名.
解决方法就是: >>> os.path.isfile(os.path.join(path,files[1])) True
搞定!

以上是关于os.path.isfile 使用误区的主要内容,如果未能解决你的问题,请参考以下文章

python:如何在(路径)列表上使用 os.path.isfile()? [复制]

在 python 中检查 os.path.isfile(filename) 是不是区分大小写

os.path.isfile的错误

python中由于中文路径引起的os.path.isfile(imgpath) == False问题

os.path.isfile() 为 linux smb 网络驱动器上的文件返回 false

os模块