python实现文件格式批量转换,PNG,JPG,PGM(娱乐项)

用python实现文件夹下的成批文件格式转换(娱乐项)

我们对于文件转换的需求很大,甚至于对于图片的格式,JPG和PNG格式在肉眼看来都没什么差别,但是对于计算机而言,它有时候就只接受这些肉眼看起来差不多的格式的其中一种。

环境

windows10
python3.7+pycharm
PIL GLOB OS

创建目录

1.在编程前,创建一个文件夹,并放入你想用的文件(非目录),这些文件的格式不合适。
例如,我在桌面创建了名为"in_path"的文件夹,在里面放进了.pgm和.png格式的文件,想让他们都转化成.jpg格式。
2.同时新建一个batch_change.py文件。在这里插入图片描述

编写程序

导入python的模块os,PIL,glob.

// 导入PIL,os,glob
from PIL import Image
import os,glob

创建输出目录

// 创建输出文件夹
def  batch_change(in_path,out_path):  
    if not os.path.exists(out_path):
        print(out_path,'is not existed.')
        os.mkdir(out_path)
    if not os.path.exists(in_path):
        print(in_path,'is not existed.')
        return -1

浏览输入目录

// 浏览遍历输入文件夹
    for files in glob.glob(in_path+'/*'):
        filepath,filename=os.path.split(files)
        out_file = filename[0:9]+'.jpg' #转换成最终格式为.jpg,可以在这里改为.png
        im = Image.open(files)
        new_path=os.path.join(out_path,out_file)
        print(count,',',new_path)
        count = count+1
        im.save(os.path.join(out_path,out_file))

修改文件路径

// 浏览遍历输入文件夹
    if __name__=='__main__':
   batch_change(r'.\in_path',r'.\out_path') 
   #你想转化文件所在文件夹输入和输出的路径

运行结果

无论是pgm,png,他们们都转化成.jpg格式,并且保存在out_path文件夹下在这里插入图片描述
在这里插入图片描述

完整代码

#encoding = utf-8
#author = itinerary,hui

from PIL import Image
import os,glob

def  batch_change(in_path,out_path):  #参数:输入与输出文件夹路径
    if not os.path.exists(out_path):
        print(out_path,'is not existed.')
        #创建输出文件夹
        os.mkdir(out_path)
    if not os.path.exists(in_path):
        print(in_path,'is not existed.')
        return -1
    count = 0
    for files in glob.glob(in_path+'/*'):
        filepath,filename=os.path.split(files)
        out_file = filename[0:9]+'.png' #转换成最终格式为png
        im = Image.open(files)
        new_path=os.path.join(out_path,out_file)
        print(count,',',new_path)
        count = count+1
        im.save(os.path.join(out_path,out_file))

if __name__=='__main__':
   batch_change(r'.\in_path',r'.\out_path') #你想转化文件所在文件夹输入和输出的路径

本作品只供于学习,感谢大家的支持。
如需转载请标注作者。

  • 11
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值