python os.path.isfile 的使用误区详解

yipeiwu_com6年前Python基础

下列这几条语句,看出什么问题了不?

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

搞定!

以上这篇python os.path.isfile 的使用误区详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python 输入一个数字判断成绩分数等级的方法

成绩分数等级为: 100-90 A 90-80 B 80-70 C 70-60 D 60以下 F 实现判断分数等级是一个很简单的数学问题,只要你输入的这个数字介于两...

python简单猜数游戏实例

本文实例讲述了python简单猜数游戏。分享给大家供大家参考。具体实现方法如下: #!/usr/bin/env python import random number = rando...

QML使用Python的函数过程解析

有2种方法: 一、 QML中定义一个信号,连接Python里的函数; 这里的函数不用特意指明为槽函数,普通函数即可。 QML的信号连接Python的函数 QML: 首先在QML中定...

Python基础之条件控制操作示例【if语句】

本文实例讲述了Python基础之条件控制操作。分享给大家供大家参考,具体如下: if 语句 Python中if语句的一般形式如下所示: if condition_1: state...

Python的Django中django-userena组件的简单使用教程

利用twitter/bootstrap,项目的基础模板算是顺利搞定。接下来开始处理用户中心。 用户中心主要包括用户登陆、注册以及头像等个人信息维护。此前,用户的注册管理我一直使用djan...