python os.path.isfile()因参数问题判断错误的解决

目的: 找出路径坐在的所有python文件(.py结尾),返回列表。

代码:

def list_py(path = None):
 if path == None:
  path = os.getcwd()
 return [fname for fname in os.listdir(path)
 if os.path.isfile(fname) and fname.endswith('.py')

错误:

不传入参数没有问题

>>> list_py()
['cmdtest.py', 'datatest.py', 'excel_combine.py', 'input.py', 'iotest.py', 'load_data_test.py', 'numpy_arraytest.py', 'ooptest.py', 'pandas_test.py', 'str_test.py', 'test.py', 'wordstats.py']

但是传入参数后

>>> list_py('D:\Python\PythonProject\data_mining_with_python')
[]

返回:[]

一度以为将路径作为参数会出问题,但是在删除列表中if条件后又正常返回。所以显而易见。

解决:

os.path.isfile()

接收的参数是路径+文件名,所以不单单是fname或者path。

而应该用:

os.path.join(path,fname)

作为参数

以上这篇python os.path.isfile()因参数问题判断错误的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python 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.

  • Python os模块中的isfile()和isdir()函数均返回false问题解决方法

    今天在写一个linux下自动备份指定目录下的所有目录的脚本时,遇到了一个问题,由于我是需要备份目录,所以,需要判断扫描的文件是否为目录,当我用os.path.isdir()来判断的时候,发现所有文件均返回false,刚开始以为是系统兼容性问题,进一步测试,发现用os.path.isfile(),这些文件还是返回false,这肯定就是程序写的有问题了,代码如下: #!/usr/bin/env python # a python script to auto backup a directory's

  • python os.path.isfile()因参数问题判断错误的解决

    目的: 找出路径坐在的所有python文件(.py结尾),返回列表. 代码: def list_py(path = None): if path == None: path = os.getcwd() return [fname for fname in os.listdir(path) if os.path.isfile(fname) and fname.endswith('.py') 错误: 不传入参数没有问题 >>> list_py() ['cmdtest.py', 'datate

  • 详解python os.path.exists判断文件或文件夹是否存在

    os即operating system(操作系统),Python 的 os 模块封装了常见的文件和目录操作. os.path模块主要用于文件的属性获取,exists是"存在"的意思,所以顾名思义,os.path.exists()就是判断括号里的文件是否存在的意思,括号内的可以是文件路径. 举个栗子: import os #判断文件夹是否存在 dir = os.path.exists('C:\\Users\\Desktop') print('dir:', dir) #判断文件是否存在 f

  • python os.path模块常用方法实例详解

    os.path模块主要用于文件的属性获取,在编程中经常用到,以下是该模块的几种常用方法.更多的方法可以去查看官方文档:http://docs.python.org/library/os.path.html 1.os.path.abspath(path) 返回path规范化的绝对路径. >>> os.path.abspath('test.csv') 'C:\\Python25\\test.csv' >>> os.path.abspath('c:\\test.csv') '

  • python os.path模块使用方法介绍

    os.path模块是os模块根据系统类型从另一个模块导入的,并非由os模块实现 1.os.path.abspath(相对路径)-----返回对应路径的绝对路径 os.path.abspath(".") import os.path print(os.path.abspath(".")) E:\python练习 上一层路径“..” import os.path print(os.path.abspath("..")) E:\ 2.os.path.a

  • pip安装python库时报Failed building wheel for xxx错误的解决方法

    目录 一.问题描述 二.解决办法 1. 下载并安装对应的 .whl 文件 2. 安装 .whl 文件 总结 一.问题描述 如题,在使用pip install xxx的方法安装python库,或者是基于python的软件时,报错“ERROR: Failed building wheel for xxx(某个库)” 这个报错信息表明缺少了相应的 .whl 文件 二.解决办法 1. 下载并安装对应的 .whl 文件 下载地址:https://www.lfd.uci.edu/~gohlke/python

  • Python os.path.exists()函数总是返回false的解决方案

    如下面所示,如果我们用file的readline或readlines,在每一行后面都有一个\n回车符 直接os.path.exists(readline)时总会返回false >>> from os.path import exists >>> exists('dog.png') True >>> exists('dog.png\n') False 使用item.strip('\n') #前面的item为我定义的变量 去掉后再传递给os.path.ex

  • Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)

    使用Python过程中,经常需要对文件和目录进行操作.所有file类/os/os.path/shutil模块时每个Python程序员必须学习的. 下面通过两段code来对其进行学习. 1. 学习 file对象 2. 学习os/os.path/shutil模块 1.file对象学习: 项目中需要从文件中读取配置参数,python可以从Json,xml等文件中读取数据,然后转换成Python的内容数据结构. 下面以Json文件为例,实现从Json文件中获取配置参数. code运行环境:python2

  • Python常用模块os.path之文件及路径操作方法

    以下是 os.path 模块的几种常用方法: 方法 说明 os.path.abspath(path) 返回绝对路径 os.path.basename(path) 返回文件名 os.path.commonprefix(list) 返回list(多个路径)中,所有path共有的最长的路径 os.path.dirname(path) 返回文件路径 os.path.exists(path) 如果路径 path 存在,返回 True:如果路径 path 不存在,返回 False. os.path.lexi

  • python 标准库原理与用法详解之os.path篇

    os中的path 查看源码会看到,在os.py中有这样几行 if 'posix' in _names: name = 'posix' linesep = '\n' from posix import * #省略若干代码 elif 'nt' in _names: from nt import * try: from nt import _exit __all__.append('_exit') except ImportError: pass import ntpath as path #...

随机推荐