工作多年,虽然上学时也看过一些相关的python教程,但感觉对python知识依然不成体系,这些年来都是边工作边学习。时间长了写的代码越来越多,对基础的python编写已经很熟悉,但因为经常要进行大批量数据的处理,运行时,发现自己的很多代码执行效率很差,自己很多编程习惯不好。后续准备及时记录一下自己编程时遇到的坑点,避免再犯,提升运行效率。 近期就发现一个python基础编程中的坑,也是一个很不好的编程习惯。主要是关于一个在循环中判断文件是否存在的语句。 判断文件是否存在有很多方式,常用的应该是os模块中的os.path.exists()方法用于检验文件是否存在。 然而我的编程习惯是借助了 判断字符串是否在字符列表中的方式去检查文件是否存在,示例如下图:
经过测试发现,如果使用我习惯的判断方式,效率会比用os.path.exists(path) 正常判断文件是否存在慢好几倍不止。这里的主要原因是我习惯使用的方式,每次都要用os.listdir()读取一遍文件夹中的文件名列表,而且还要判断一个文件名是否在列表里,这耗费了大量时间。这也可能只是本人的代码习惯,不知道有没有人也会这样。唉,以后一定不能再这样用了,而且在以后写循环的时候,也要多注意一下类似的问题,吃一堑长一智。