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

yipeiwu_com5年前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 调用Java实例详解

Python 调用Java实例详解 前言: Python 对服务器端编程不如Java 所以这方面可能要调用Java代码 前提: Linux 环境  1 安装 jpype1 安...

对Python 3.2 迭代器的next函数实例讲解

在python中,使用iter函数可以获得有序聚合类型的迭代器,我个人将迭代器理解为带有next指针的单向链表,获取到的迭代器为链表的表头,表头内容为空,next指针指向有序聚合类型的第...

Python将8位的图片转为24位的图片实现方法

Python将8位的图片转为24位的图片实现方法

用的pytorch来训练deeplabv3+ 在做deeplabv3+的过程中,我的训练图片是8位的,如下图: 8位的: 24位的: 这样虽然在训练过程中能够正常训练。但是在评估过程...

python梯度下降法的简单示例

python梯度下降法的简单示例

梯度下降法的原理和公式这里不讲,就是一个直观的、易于理解的简单例子。 1.最简单的情况,样本只有一个变量,即简单的(x,y)。多变量的则可为使用体重或身高判断男女(这是假设,并不严谨),...

pandas DataFrame 行列索引及值的获取的方法

pandas DataFrame是二维的,所以,它既有列索引,又有行索引 上一篇里只介绍了列索引: import pandas as pd df = pd.DataFrame({'...