背景

写了个小爬虫,爬了一堆图片回来,全都是webp格式的。
可我还在用着上古时代的AcdSee 3.2,一张张图片都拖到浏览器里去看也显得太傻了。
虽然我瘾大,可是人菜。
看了半天别的玩家写的各种奇奇怪怪的攻略,高人可以用powershell一句话搞定,我当然也知道powershell很好很强大,奈何我怎么改来改去在我的计算机上都跑不通。
最后只好还是求助我刚学会没几天的Python。

准备工作

这webp的始作俑者当然是Google,它家也提供一个软件包用来折腾webp的文件。
地址在此: https://developers.google.com/speed/webp
解压下来之后的文件里面跟FFMpeg很像,直接去bin文件夹看看就好。
看了一下随文件自带的说明,里面讲了几个参数,大致是这样的:

 > dwebp -hUsage: dwebp in_file [options] [-o out_file]

有了这个dwebp.exe文件,就可以开工了

实操

进入VS Code写代码

import os # 首先调用os模块
# 接着指定webp图片所在所有文件夹的目录
rootdir = r'D:\RMT\TRY\vmg'
# 通过os模块的os.walk()函数来遍历这个文件夹和其下所有的子文件夹里面的内容
for (folder,_,filenames) in os.walk(rootdir):
# 通过循环,来得到文件夹里面的路径for n in filenames:# 得到类似D:\RMT\TRY\vmg\鲜花和浪漫都给你\2021030910104769.webp这样的源文件完整地址input_file = folder + "\\" + n # 得到类似D:\RMT\TRY\vmg\鲜花和浪漫都给你\2021030910104769.png这样的目标文件的完整地址output_file = input_file.split(".")[0] + '.png'# 指定google的webp文件解码器的路径bin_file = r'F:\Lab\libwebp-1.2.0-windows-x64\libwebp-1.2.0-windows-x64\\bin\dwebp' # 通过python3的高版本引入的f格式来简化字符串的拼接,而且显得很直观。# 这里的-mt是dwebp中的参数,意为调用多线程,如果你的图片不大,可以省略command = f'{bin_file} "{input_file}" -mt -o "{output_file}"'# 到了这一步,得到的命令将类似于:# F:\Lab\libwebp-1.2.0-windows-x64\libwebp-1.2.0-windows-x64\bin\dwebp "D:\RMT\TRY\vmg\鲜花和浪漫都给你\2021030910104769.webp" "D:\RMT\TRY\vmg\鲜花和浪漫都给你\2021030910104769.png"# 最后调用os模块来执行cmd命令os.system(command)

哎,时代的车轮滚滚,像我这样用着拼音加加,抱着windows 7和AcdSee 3.2不肯撒手的人,可能注定该留在历史的垃圾堆里了吧……

用Python调用CMD命令 批量转换Webp到Png相关推荐

  1. python调用cmd命令释放端口_详解python调用cmd命令三种方法

    目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...

  2. python调用cmd命令会弹出黑框_python 调用cmd,不显示cmd黑框

    python 调用系统命令的方式有很多 1.1   os.system(command) 在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态.这实际上是使用C标准 ...

  3. python cmd命令大全-详解python调用cmd命令三种方法

    目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...

  4. 详解python运行三种方式_详解python调用cmd命令三种方法

    目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...

  5. python调用cmd执行命令_详解python调用cmd命令三种方法

    目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...

  6. python调用cmd命令释放端口_Python——cmd调用(os.system阻塞处理)(多条命令执行)...

    原博文 2017-11-14 15:29 − os.system(返回值为0,1,2)方法 0:成功 1:失败 2:错误 os.system默认阻塞当前程序执行,在cmd命令前加入start可不阻塞当 ...

  7. python调用cmd命令

    import subprocess import os #创建文件夹 os.system('MD "' + GEN_FOLDER + '1"'); output = subproc ...

  8. 【python】端调用cmd命令

    一.python中的os模块 OS模块调用CMD命令有两种方式:os.popen()和os.system()都被当前进程调用. OS.system 无法获取返回值.操作完成后,程序在下面执行.用法如: ...

  9. python 调用HEG工具批量处理modis数据将hdf转为tif

    python 调用HEG工具批量处理modis数据将hdf转为tif 搞了2.3天才搞定,在这里做个记录,希望 可以帮到需要的朋友. HEG工具安装需要的准备工作: 一.. JAVA安装. 电脑上没有 ...

最新文章

  1. “80后”财富新贵创业秘诀
  2. 正则表达式匹配分组(|、(ab)、\num、(?P<name>)(?P=name))
  3. 小工匠聊架构-超高并发秒杀系统设计 03_热点数据的处理
  4. JavaScript——易班优课YOOC课群在线测试自动答题解决方案(二十二)脚本更新3.1
  5. Windows 常用快捷键 + word常用快捷键 +常用工具调用
  6. 机器学习(一)线性回归
  7. 秒懂边缘云丨快速入门边缘云
  8. FPGA学习之路—应用程序—原码二位乘法器及Verilog代码分析
  9. 通过学习反编译和修改IL,阅读高人的代码,提高自身的水平。 【转】
  10. PAT (Basic Level) Practice1016 部分A+B
  11. java多线程中的调度策略
  12. 【数学建模】基于matlab贫困生评测系统【含Matlab源码 1744期】
  13. 用javascript和jquery部分知识实现的打地鼠小游戏
  14. 闭关之 Vulkan 应用开发指南笔记(二):队列、命令、移动数据和展示
  15. 国外广告联盟前期需要准备的事情
  16. 树莓派外设开发——IIC接口OLED屏幕
  17. 全面的IE兼容性调试问题
  18. 【2018慢性病与信息大会】吴良友:信息化背景下慢性病监测工作变革
  19. 手机的像素密度是怎么来的?
  20. 2020年浙江理工大学新生赛 D DD_BOND看到的hcy

热门文章

  1. NGU插件 NGUI类库说明
  2. 概要设计心得 kaki的博客
  3. 大众点评海底捞分店数据及评论数据
  4. 最新linux cheat安装,linux命令工具----Cheat的安装
  5. 三网话费、充值系统搭建、电费充值API接口文档
  6. Vuex使用mapState
  7. 二级日语语法总汇(1)
  8. 全球及中国工业节能行业“十四五”动态调研及投资可行性研究报告2021-2027年
  9. css弹性布局实现水平居中对齐
  10. PS 滤镜——平面坐标变换到极坐标