שלום אורח התחבר

סקריפט רובי קצר לסידור תמונות בתיקיות

נושאים:ruby

את הסקריפט הבא לקח לי מעט מאוד זמן לכתוב, ואולי זה מה שמחזיר אותי שוב ושוב לרובי. הסיפור הוא כזה: יש לנו אוסף תמונות גדול וצריך לסדר בתיקיות לפי חודשים, כך שכל התמונות מכל חודש יישמרו יחד. הבעיה שתאריך יצירת הקובץ לא רלוונטי כאן אלא רק תאריך התמונה (מוטמע בקובץ כחלק מפורמט jpeg).

תוכן עניינים

  1. רובי להצלה

1רובי להצלה

הקוד עבד כבר בהרצה הראשונה:

require 'exifr'

Dir.glob("**/*.{jpg,JPG}").each do |file|

  dt = EXIFR::JPEG.new(file).date_time
  month = (dt ? dt.month : 'Unknown').to_s
  Dir.mkdir(month) unless Dir.exist?(month)

  File.rename(file, File.join(month, file))
end

אהבתי ש glob של רובי יודע להתמודד עם הכוכבית הכפולה (לחיפוש בתתי התיקיות). בפייתון תצטרכו את גירסא 3.5 בשביל זה ופרל תשלח אתכם ל File::Find. אהבתי את התחביר של המודול EXIFR שלקח לי שניה וחצי להתקין והחזיר בדיוק את מה שרציתי לדעת על הקובץ, כתיב ה unless בסוף השורה שלקוח מפרל וכמובן File.join שחוסך לנו את חיבור המחרוזות ומוסיף לבד את הלוכסן שמפריד בין קובץ לתיקיה.

בקיצור יוסף כותב ברובי. תהיו יוסף.

מעדיפים לקרוא מהטלגרם? בקרו אותנו ב:@tocodeil

או הזינו את כתובת המייל וקבלו את הפוסט היומי בכל בוקר אליכם לתיבה:


נהניתם מהפוסט? מוזמנים לשתף ולהגיב