作者alvinlin (艾爾文)
看板Python
標題Re: [問題] 如何檢查圖片是否和毀損
時間Tue Jul 30 18:57:54 2019
試著把內容印出來就會找到解決方案。
import os
import imghdr
path = 'Z://oswalk'
for root, dirs, files in os.walk(path):
for f in files:
print(os.path.join(root, f), imghdr.what(os.path.join(root, f)))
https://i.imgur.com/uUssjxt.jpg
※ 引述《s4028600 (佑)》之銘言:
: import os
: path = 'D:\long\Desktop\image\\'
: def is_valid_jpg(jpg_file):
: with open(jpg_file, 'rb') as f:
: f.seek(-2, 2)
: buf = f.read()
: return buf == b'\xff\xd9'
: def is_valid_png(png_file):
: with open(png_file, 'rb') as f:
: f.seek(-2, 2)
: buf = f.read()
: return buf == b'\x60\x82'
: for file in os.listdir(path):
: pic_file = path + file
: isJpg = is_valid_jpg(pic_file)
: isPng = is_valid_png(pic_file)
: print("jpeg : %s, png %s, file %s " % (isJpg, isPng, file))
: 之前找到的就算能讀取
: 也無法正確判斷
: 這是我重新找到的
: 稍微修改成一個資料夾下的圖片
: 問題來了
: 我如果要讀取一個資料夾下的所有子資料夾下的圖片
: 要怎麼改
: 原本是打算用glob.glob結果失敗...
-----
Sent from JPTT on my iPhone
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.186.172 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1564484276.A.8A3.html
※ 編輯: alvinlin (123.192.186.172 臺灣), 07/30/2019 19:02:05
推 s4028600: 印出來...要怎麼接到下一步... 07/31 01:35
推 s4028600: 這個會連檔案一起印出來 但是下面的代碼又只吃資料夾路 07/31 01:41
→ s4028600: 徑... 07/31 01:41
推 s4028600: 而且只讀取最後讀取的資料夾 沒辦法讀取下一個資料夾... 07/31 01:46
推 s4028600: imghdr我查了一下是推測圖像類型,但是無法判斷圖片有無 07/31 01:55
→ s4028600: 缺損... 07/31 01:55