[问题] 检查副档名并重新命名

楼主: s4028600 (佑)   2019-11-28 22:29:04
import imghdr
import os
root=["D:\long\Desktop"]
for path in root:
for dirPath, dirNames, fileNames in os.walk(path):
for file in fileNames:
pic_file=os.path.join(dirPath,file)
img = imghdr.what(pic_file)
#print(os.path.splitext(pic_file)[1])
if os.path.splitext(pic_file)[1].lstrip('.') != img:
#print(img,pic_file)
#print(os.path.splitext(pic_file)[0])
name=os.path.splitext(pic_file)[0]+'.'+img
print(name)
os.rename(pic_file,name)
有几个问题
1.我所用的imghdr似乎只能辨认图片的副档名
它把我的txt当错误的档案
有能辨识其他副档名是否正确的包吗
2.我用其他程式辨识的是jpg但是imghdr的辨识却是jpeg
3.遇到非图片的会错误比如txt
不过有打算用try所以算是小问题
作者: AndCycle (AndCycle)   2019-11-28 22:39:00
那个, jpg 是因为副档名3个字这个惯例所产生的简写 ...
楼主: s4028600 (佑)   2019-11-28 23:29:00
了解那2.的解决方法就设定其他条件好了1和3有方法吗
作者: ZongXiu   2019-11-29 09:28:00
有试过 字串[-4:]=='.jpg' ?
作者: TuCH (谬客)   2019-11-29 09:31:00
改字串为什么要用imghdr阿阿阿副档名就是.split('.')[-1]吧
作者: s860134 (s860134)   2019-11-29 12:49:00
其实有 os.path 就有 os.path.splitext
楼主: s4028600 (佑)   2019-11-30 03:08:00
手机要用整页或浏览器才是正常的缩排感谢各位建议
作者: MARGHT   2019-12-01 13:44:00
还有pathlib可以用
楼主: s4028600 (佑)   2019-12-05 04:16:00
感谢 可惜没相关教学 好像没办法用
作者: max533 (向阳花)   2019-12-11 08:26:00
pathlib(限python3)推推,处理档案以物件导向型式很方便

Links booklink

Contact Us: admin [ a t ] ucptt.com