কম্পিউটার

পাইথনে ফাইল এবং ডিরেক্টরির তুলনা


পাইথনের স্ট্যান্ডার্ড লাইব্রেরিতে ফাইল সিএমপি মডিউল রয়েছে যা ফাইল এবং ডিরেক্টরির তুলনা করার জন্য ফাংশন সংজ্ঞায়িত করে। এই তুলনাটি তাদের মধ্যে থাকা ডেটা ছাড়াও ফাইলগুলির বৈশিষ্ট্যগুলিকে বিবেচনা করে৷

এই নিবন্ধের উদাহরণ কোডগুলি নিম্নলিখিত ফাইল এবং ডিরেক্টরি কাঠামো ব্যবহার করে৷

দুটি ডিরেক্টরি dir1 এবং dir2 প্রথমে বর্তমান কাজের ডিরেক্টরির অধীনে তৈরি করা হয়। তারা নিম্নলিখিত ফাইল ধারণ করে.

--dir1/newfile.txt--এটি dir1--dir1/file1.txt--হ্যালো পাইথন--dir1/file2.txt--পাইথন স্ট্যান্ডার্ড লাইব্রেরি--dir2/file1.txt--এ একটি ফাইল হ্যালো পাইথন--dir2/file2.txt--পাইথন লাইব্রেরি

আসুন এখন filecmp মডিউলে বিভিন্ন তুলনামূলক ফাংশন বর্ণনা করি।

filecmp.cmp(f1, f2, shallow=True)

এই ফাংশন দুটি ফাইলের তুলনা করে এবং একই হলে True ফেরত দেয়, অন্যথায় False। অগভীর প্যারামিটারটি ডিফল্টরূপে সত্য। তাই ফাইল মেটাডেটা বিষয়বস্তু ছাড়াও তুলনা করার জন্য বিবেচনা করা হয়। যদি অগভীর মিথ্যা সেট করা হয়, শুধুমাত্র বিষয়বস্তু তুলনা করা হয়।

আমাদের ফাইল কাঠামোর উপর ভিত্তি করে, নিম্নলিখিত কোডটি দেখানো হিসাবে আউটপুট দেয় −

ভিন্ন ফাইল :['file2.txt']>>> filecmp.cmp('dir1/file1.txt', 'dir2/file1.txt')True>>> filecmp.cmp('dir1/file1.txt' ', 'dir2/file1.txt', shallow =False)True>>> filecmp.cmp('dir1/file2.txt', 'dir2/file2.txt') মিথ্যা

filecmp.cmpfiles(dir1, dir2, অগভীর)

এই ফাংশনটি দুটি ডিরেক্টরিতে ফাইলের তুলনা করে এবং একটি তিনটি আইটেম টিপল প্রদান করে। টিপলের প্রথম আইটেমটি হল মিলিত ফাইলগুলির তালিকা, দ্বিতীয়টি অতুলনীয় ফাইলগুলির তালিকা দেখায় এবং তৃতীয়টি হল সাধারণ ফাইলগুলির তালিকা৷

>>> মিল, মিল, ত্রুটি =filecmp.cmpfiles('dir1','dir2',['file1.txt', 'file2.txt'])>>> মিল['file1.txt']>>> অমিল['file2.txt']>>> ত্রুটি[]

Filecmp মডিউল এছাড়াও dircmp ক্লাস সংজ্ঞায়িত করে। এর অবজেক্ট হল ডিরেক্টরি তুলনা অবজেক্ট। এটি বাম এবং ডান ডিরেক্টরি হিসাবে চিহ্নিত দুটি ডিরেক্টরিতে ফাইলের তুলনা করে। অবজেক্টটি নিচে বর্ণিত −

অনুযায়ী বিভিন্ন পদ্ধতি চালাতে পারে

filecmp.dircmp(a,b)

এই কনস্ট্রাক্টর. a এবং b তুলনা করতে হবে এমন ডিরেক্টরি। ডিফল্টরূপে ডিরেক্টরিতে সিস্টেম ফাইলগুলি লুকানো এবং তুলনামূলকভাবে উপেক্ষা করা হয়৷

>>> ফলাফল =filecmp.dircmp('dir1', 'dir2')

dircmp ক্লাসের অন্যান্য পদ্ধতিগুলি নিম্নরূপ -

রিপোর্ট()

এই পদ্ধতিটি ডিরেক্টরির মধ্যে তুলনার ফলাফল প্রিন্ট করে।

>>> ফলাফল =filecmp.dircmp('dir1', 'dir2')>>> result.report() diff dir1 dir2 শুধুমাত্র dir1 এ :['newfile.txt']অনুরূপ ফাইল :['file1.txt' ]ভিন্ন ফাইল :['file2.txt']

বাম, ডান

এই বৈশিষ্ট্যগুলি dircmp কন্সট্রাক্টর

-এ প্রথম এবং দ্বিতীয় ডিরেক্টরিগুলির নাম মুদ্রণ করে
>>> result.left'dir1'>>> result.right'dir2'

বাম_তালিকা, ডান_তালিকা

এই বৈশিষ্ট্যগুলি উভয় ডিরেক্টরিতে ফাইলগুলির তালিকা দেয়

>>> result.left_list['file1.txt', 'file2.txt', 'newfile.txt']>>> result.right_list['file1.txt', 'file2.txt']

common, common_files, common_dirs

এই বৈশিষ্ট্যগুলি সাধারণ ফাইল এবং ডিরেক্টরি, সাধারণ ফাইলগুলি এবং শুধুমাত্র সাধারণ ডিরেক্টরিগুলি প্রদান করে৷

>>> result.common['file1.txt', 'file2.txt']>>> result.common_files['file1.txt', 'file2.txt']>>> result.common_dirs[] 

একই_ফাইল, ডিফ_ফাইল

বৈশিষ্ট্যগুলি dircmp ক্লাসে সংজ্ঞায়িত অভিন্ন ফাইল এবং ভিন্ন ফাইল ব্যবহার করে তুলনা অপারেটরের তালিকা প্রদান করে৷

>>> result.same_files['file1.txt']>>> result.diff_files['file2.txt']

এই নিবন্ধটি dircmp ক্লাস, এর পদ্ধতি এবং ফাইল তুলনা ফাংশন ফাইলসিএমপি মডিউলে সংজ্ঞায়িত করা হয়েছে।


  1. পাইথনে .pyc ফাইল কি?

  2. কিভাবে Python ব্যবহার করে একটি ফাইল সরাতে?

  3. আমি কিভাবে পাইথনে একটি ফাইল অনুলিপি করব?

  4. পাইথনে একটি ডিরেক্টরিতে একাধিক ফাইল কীভাবে মুছবেন?