.Jpg মিল নেই এমন "অব্যবহৃত" কাঁচা ফাইলগুলি কীভাবে মুছবেন?


10

আমি RAW + JPG, এনইএফ এবং জেপিজি শুট করি। কখনও কখনও শত শত চিত্র (একটি সাধারণ প্রোগ্রাম ব্যবহার করে) দেখার পরে এবং জেপিজি মুছে ফেলার পরে, আমার অনেকগুলি অপ্রয়োজনীয় বাকী এনইএফ ফাইল রয়েছে। ডিরেক্টরিতে যদি কোনও অনাথ NEF ফাইল মুছতে কোনও স্ক্রিপ্ট থাকে, তবে এটি খুব সহায়ক হবে। আমি এখানে একটি অনুরূপ প্রশ্নটি পড়েছি " কীভাবে জেপিজি ফাইলগুলি মুছবেন, তবে কেবলমাত্র মিলে যাওয়া RAW ফাইল উপস্থিত থাকলে? " এবং কমান্ড প্রম্পটের সাথে উপস্থাপিত সমাধানটি খুব ভালভাবে কাজ করে। আমি ভাবছিলাম যে আমার দুর্দশার জন্য কোনটি পাওয়া যায়?


আপনি কি এখানে এই প্রশ্নের একটি লিঙ্ক সরবরাহ করতে পারেন? এর উত্তরটি অবশ্যই একটি শেল স্ক্রিপ্ট হবে - পরিবর্তে সুপারউসারকে জিজ্ঞাসা করুন কারণ আপনার যা মুছতে হবে (ফাইলের নাম অনুসারে) আপনার যদি তার একটি ভাল সংজ্ঞা থাকে তবে এটি মোটামুটি তুচ্ছ কাজ।
বেন পার্সসন

1
ভবিষ্যতের জন্য, কেবল গীকি ব্যবহার করুন। এটি মিলে যাওয়া RAW ফাইলগুলি স্বয়ংক্রিয়ভাবে এবং অন্য কোনওটি যা কনফিগারের উপর ভিত্তি করে 'সিডিকার' ফাইল হিসাবে সংজ্ঞায়িত করা হয় তা মুছে দেয়।
Itai

আমার সেটআপটি নিম্নরূপ: এনইএফ: \\ ফটোগুলি \ RAW \ YYYY \ YYYY-MM-DD \ original.nef Jpegs: \\ ফটো \ RAW \ YYYY \ YYYY-MM-DD \ original.jpeg যাইহোক আমি এটি প্রয়োগ করতে পারি এই স্ক্রিপ্ট?

বাশ-এ: অনাথ = .nef; পিতা বা মাতা = .jpeg; * "$ এতিম" এফের জন্য; do F = "$ {f% $ অনাথ} $ অভিভাবক"; যদি পরীক্ষা! -ফ "$ এফ"; তারপরে "স্বীকৃত অনাথ: exists f বিদ্যমান তবে $ ফ" নেই; ফাই সম্পন্ন এই অন্যান্য উত্তরগুলি কতটা দীর্ঘ এবং জটিল তা বিশ্বাস করতে পারছি না। হ্যাঁ, আমি জানি, মন্তব্যে উত্তর দিচ্ছি, তবে এটি সুরক্ষিত ...
কেউ না

উত্তর:


9

আমার জন্য কাজটি করার জন্য আমি পাইথনে একটি স্ক্রিপ্ট লিখেছিলাম । এটি বলা হয়েছে remove-orphaned-raw-images.pyএবং আমি এটি গিথুব এ প্রকাশ করেছি ।

মূলত এটি প্রদত্ত ফোল্ডারে থাকা সমস্ত ফাইলের উপরে পুনরাবৃত্তি করে এবং এতিম কাঁচা চিত্রগুলি (আমার ক্ষেত্রে *.CR2ফাইলের সাথে কোনও মিলছে না জেপিগের সাথে ফাইলগুলি) একটি ব্যাকআপ ফোল্ডারে স্থানান্তরিত করে । Ptionচ্ছিকভাবে আপনি স্ক্রিপ্টটি আসলে ফাইলগুলি মুছতে বলতে পারেন।

এখানে অ্যালগরিদমের একটি রূপরেখা দেওয়া হল:

  • নির্বাচিত ডিরেক্টরিতে সমস্ত ফাইলের একটি তালিকা পান।
  • এই ফাইলগুলিকে RAW এবং JPEG ফাইলগুলিতে বাছাই করুন (তাদের পৃথক তালিকায় যুক্ত করুন)।
  • RAW চিত্র তালিকার প্রতিটি আইটেম পরীক্ষা করে দেখুন যে জেপিইজি তালিকায় একটি ম্যাচ বিদ্যমান;
    যদি তা না হয় তবে অনাথ কাঁচা চিত্রের তালিকায় এই চিত্রটি যুক্ত করুন।
  • অনাথ চিত্রের তালিকার চিত্রগুলিকে ব্যাকআপ ফোল্ডারে সরান
    (বা স্পষ্টভাবে চাইলে সেগুলি সরাসরি মুছুন)।

-hকমান্ড লাইনে সহায়তা বিকল্পটি চালানোর সময় সরঞ্জামটি কীভাবে এটি ব্যবহার করবে তা আপনাকে জানাবে ।

এই সমস্যাটি আমার কাছে ঘটেছিল, এই কারণেই আমি এই সরঞ্জামটি লিখেছিলাম। আমি আমার ডিএসএলআর ব্যবহার করছি জেপিইজি বা আরএইউ + জেপিইজি চিত্রগুলি নেওয়ার জন্য, কেবল কখনও RAW নয়। অস্পষ্ট বা অন্যথায় খারাপ শটগুলি বাছাই করার সময়, আমি জেপিইজিগুলি সেগুলি একবারে দেখে নেওয়া এবং খারাপগুলি মুছতে ব্যবহার করি। এটি আমাকে র বাম ওভার ইমেজগুলির সাথে ছেড়ে দেয় যাগুলির সাথে আমি মিলে যাওয়া জেপিইজিগুলি মুছে ফেলা (এক কারণে)।


5

আপনার উল্লিখিত প্রশ্নটি ব্যবহার করে - আমি আপনাকে একটি স্ক্রিপ্ট লিখেছি

ঠিক আছে সতর্কতা! এই স্ক্রিপ্ট সঙ্গে সাবধান! - একটি ব্যাকআপ করুন

1) ক্লিন.বাট নামে একটি ব্যাট ফাইল তৈরি করুন এবং এটি আপনি যে ডিয়ারের সাথে কাজ করতে চান তাতে রাখুন

2) তারপরে ব্যাট ফাইলে নিম্নলিখিতটি প্রবেশ করান

mkdir keep
for /f "delims==" %%r in ('dir /b *.jpg') do move "%%~dpr%%~nr.nef" "%CD%\keep\" 2> nul
move *.jpg "%CD%\keep\"
del *.nef
del *.jpg
move "%CD%\keep\*.*" "%CD%\"
rmdir keep

3) অ্যাডমিন হিসাবে কমান্ড প্রম্পট খুলুন এবং clean.bat সঙ্গে ফোল্ডারে নেভিগেট 4) clean.bat চালান

মূলত লিপির প্রবাহ হয়

  • কীপ নামে একটি ডিরেক্টরি তৈরি করুন
  • সমস্ত মিলে যাওয়া NEF ফাইলগুলি কিপ ফোল্ডারে সরান
  • সমস্ত জেপিগগুলি কিপ ফোল্ডারে সরান
  • তারপরে উত্স ফোল্ডার থেকে সমস্ত ফাইল মুছুন
  • ফাইলগুলি আবার রাখুন
  • কিপ ফোল্ডারটি সরান

দয়া করে, এটি পরীক্ষা করে দেখুন!

আপডেট: স্ক্রিপ্ট পরিবর্তনগুলি ফোল্ডারে ফাঁকা রয়েছে এমনগুলির সাথে কাজ করার জন্য


2
সরল, এক শট সমাধানের জন্য +1! আমার দীর্ঘদিন ধরে এই সমাধানটির প্রয়োজন ছিল। আমি ডিআইআর আউটপুটকে এক্সেলে আটকানো এবং পৃথক কমান্ড জেনারেট করার জন্য ভিউকআপের মতো জটিল অপারেটর ব্যবহার করে কমান্ডগুলি বিস্তৃত করতাম, তবে এটি আমার প্রায় সমস্ত প্রয়োজনকেই ধরা দেয়। স্ক্রিপ্টটি পরীক্ষা করেছিলাম এবং এটি আমার জন্য সম্পূর্ণ জরিমানা। স্ক্রিপ্টটি পুরোপুরি বুঝতে এবং অন্যান্য অনুরূপ ক্রিয়াকলাপগুলির জন্য এটি সংশোধন করতে সক্ষম হতে বেশ কয়েকটি রেফারেন্সের সাথে পরামর্শ করতে হয়েছিল।
জাহাজিল

কল্পনাপ্রসূত, আপনি আমাকে ক্লান্তিকর কাজের ঘন্টা বাঁচিয়েছেন !!! আমি এটি বেশ কয়েকবার চেষ্টা করেছি এবং এটি খুব দ্রুত কাজ করে। আমি যা খুঁজছিলাম ঠিক তেমনই এটি।
আল এইচ

@ আল-এইচ - দয়া করে আপনি কি তখন সঠিক হিসাবে টিক দিতে পারেন? ধন্যবাদ
রব

রব আমি "আপনি দয়া করে সঠিক হিসাবে টিক দিতে পারেন" বলতে চাইছেন তা আমি নিশ্চিত নই আমি কোথাও দেখতে পাচ্ছি না আমি একটি সঠিক লিঙ্কটি চেক করতে পারি।
আল এইচ

একটা জিনিস আমি লক্ষ্য করেছি। এটি ডেস্কটপে ফোল্ডারগুলিতে কাজ করে না (সমস্ত জেপিজি এবং এনইএফ ফাইল মুছে দেয়), তাই প্রথমে পরীক্ষা করুন। আমি উইন্ডোজ এক্সপি প্রো চালিয়ে যাচ্ছি।
আল এইচ

1

Cr2 এর w / oa jpeg মুছে ফেলার জন্য আমার অজগর স্ক্রিপ্টটি এখানে।

এটি বর্তমান ডিরেক্টরিতে পুনরাবৃত্তভাবে অনুসন্ধান করে, ""। এটি সমস্ত ফোল্ডারে সমস্ত চিত্র বিবেচনা করে।

import os 
import sys

#Searches through the current directory, recursively, looking for any raw
#and jpeg files. It enumerates the jpegs it finds, without the extension, and
#then enumerates the raw files it finds. If it finds a raw file for which no
#jpeg exists, then it deletes the raw file.
#
# This WILL NOT WORK, if there are files with repeated file numbers.
# this will NOT be an issue if there's only one camera. 

# A dict of filename: (rawpath, jpegpath)
files_seen = {}

for (cur_dir, subdirs, files) in os.walk("."):
  for file in files:
    fname, fext = os.path.splitext(file)
    fext = fext.lower()



    if (fext == ".jpg"):
      content = files_seen.setdefault(fname, [None, None])
      # if it is then filenames have du'ped
      assert(content[1] is None)
      content[1] = os.path.join(cur_dir, file)

    elif (fext == ".cr2"):
      content = files_seen.setdefault(fname, [None, None])
      assert(content[0] is None)
      content[0] = os.path.join(cur_dir, file)

#at the end, we look for raw files without a jpeg,

for key in files_seen:
  (raw_path, jpeg_path) = files_seen[key]

  if jpeg_path is None:
    print("Deleting: %s" % raw_path)
    #os.system("pause.exe")    
    os.unlink(raw_path)

print("Done")
os.system("pause.exe")

কেবল ".cr2" "" .nef "থেকে নতুন নামকরণ করুন
পিটার

আমি পাইথনের সাথে পরিচিত নই, তবে আমি দেখতে পাচ্ছি এটি শেষ পংক্তিতে "পজ.এক্সি" বোঝায়। এর অর্থ কি এটি কেবল উইন্ডোজে কাজ করছে? আমি যদিও পাইথন প্ল্যাটফর্ম স্বাধীন ছিল।
সারু লিন্ডেস্টকে

গ দিন. বিরতি.এক্স.এই আমি কেবল এটি রেখেছিলাম যাতে এক্সট্রোল্টারে এটির দ্বিগুণ ক্লিক করার পরে পাইথন জিনিসটি শেষ হওয়ার সাথে সাথে এটি শেষ হয়ে যায়। আপনি thsi লাইন অপসারণ এবং voila মুক্ত এটি প্ল্যাটফর্মটি স্বাধীন হতে পারবেন। ওএস নির্ভর স্টাফ ব্যবহার করা খারাপ অভ্যাস, এবং যেহেতু আমি প্রথম দিকে এটি আমার জন্য লিখেছিলাম, তাই আমি অলসতা বজায় রেখেছিলাম: ডি কমপক্ষে আমি সরল স্ল্যাশ সহ পাথকে একত্রিত করতে পারি না বা ওএস নির্দিষ্ট মুছে ফেলা ফাইলগুলি ব্যবহার করি না।
পিটার পিট

এটি পাইথন 3.x সংস্করণের জন্যও লেখা হয়েছে। আপনি যদি এটি 2.x বন্ধুত্বপূর্ণ হতে চান তবে "কিছু" মুদ্রণের জন্য সমস্ত মুদ্রণ ("কিছু") পরিবর্তন করুন
পিটার পিট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.