·
#include __FILE__

挺好的,借助了glob避免手动遍历失误,不过你其中有些代码是多余的

  • path.join()并没有外来参数,可预知结果,手动拼接即可
  • img.load()忽略了返回值没有起到作用可以直接删除

所以在忽略代码格式化的情况下(不符合pep8之类的),我可以写出一个非常短的版本 ,而作用和你这个一样

import glob,PIL.Image,os

list(map(lambda f:(PIL.Image.open(f).save(f[0:-5] + ".jpg"),os.remove(f)),glob.glob('./*.webp')))

然后稍微改一下glob的参数就能递归到文件夹里面去,"./**/*.webp"

所以没什么好在意代码行数的,你应该做的是继续完善这个程序,比如可以输入一些选项控制输出的格式实现多种多样的的不同格式之间的图片转换

Replies
3

这里我有一个地方不懂,使用list(map(lambda))和for有什么区别,请教一下

哈哈,这里这样用区别不大,所以才直接简写的,有一些功能比较简单比较短小的我都会用map替代for,最主要的区别可能是map产生一个懒序列,加上list之后就直接作用到每一个元素上了

明白了