退屈なことはPythonにやらせよう
楽天ブックス Yahoo!
原著:Automate the Boring Stuff with Python:
Practical Programming for Total Beginners
開発環境
- macOS Catalina - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Python 3.8 (プログラミング言語)
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング (Al Sweigart(著)、相川 愛三(翻訳)、オライリージャパン)の第Ⅱ部(処理の自動化)、17章(画像の操作)、17.7(演習プロジェクト)、17.7.2(ハードドライブの写真フォルダを探す)の解答を求めてみる。
コード
#!/usr/bin/env python3
import os
from PIL import Image, UnidentifiedImageError
for foldername, subfolders, filenames in os.walk('/'):
num_photo_files = 0
num_non_photo_files = 0
for filename in filenames:
if not (filename.endswith('.jpg') or filename.endswith('.png')):
num_non_photo_files += 1
continue
try:
im = Image.open(os.path.join(foldername, filename))
width, height = im.size
if width >= 1000 and height >= 1000:
num_photo_files += 1
else:
num_non_photo_files += 1
except UnidentifiedImageError as err:
print(err)
num_non_photo_files += 1
except Exception as err:
print(err)
num_non_photo_files += 1
if num_photo_files >= num_non_photo_files and num_photo_files != 0:
print(foldername)
入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))
% ./findphotofolder.py
cannot identify image file '/usr/share/cups/ipptool/gray.jpg'
cannot identify image file '/usr/share/cups/ipptool/testfile.jpg'
cannot identify image file '/usr/share/cups/ipptool/color.jpg'
/Library/Desktop Pictures
/System/Library/Desktop Pictures
…
%
0 コメント:
コメントを投稿