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

yipeiwu_com5年前Python基础

目的: 找出路径坐在的所有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()因参数问题判断错误的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

浅谈DataFrame和SparkSql取值误区

浅谈DataFrame和SparkSql取值误区

1、DataFrame返回的不是对象。 2、DataFrame查出来的数据返回的是一个dataframe数据集。 3、DataFrame只有遇见Action的算子才能执行 4、Spark...

在Python中使用poplib模块收取邮件的教程

在Python中使用poplib模块收取邮件的教程

SMTP用于发送邮件,如果要收取邮件呢? 收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上。收取邮件最常用的协议是POP协议,目前版本号是3,俗称POP3。...

django model去掉unique_together报错的解决方案

事情是这样的,我有一个存储考试的表 class Exam(models.Model): category = cached_fields.ForeignKeyField(Categ...

Django1.7+python 2.78+pycharm配置mysql数据库教程

配置好virtualenv 和virtualenvwrapper后,使用pycharm创建新项目。之后要面临的问题就来了,之前一直使用的是sqlite作为开发数据库进行学习,按照之前看教...

Python获取当前脚本文件夹(Script)的绝对路径方法代码

Python脚本有一个毛病,当使用相对路径时,被另一个不同目录下的py文件中导入时,会报找不到对应文件的问题。感觉是当前工作目录变成了导入py文件当前目录。如果你有配置文件的读取操作,然...