Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python में फ़ाइल और डायरेक्टरी तुलना

Python की स्टैंडर्ड लाइब्रेरी में filecmp मॉड्यूल है जो फ़ाइलों और डायरेक्टरीज़ की तुलना के लिए फ़ंक्शन्स डिफाइन करता है। यह तुलना फ़ाइलों में डेटा के अलावा उनके गुणों को भी ध्यान में रखती है।

इस लेख के उदाहरण कोड निम्न फ़ाइल और डायरेक्टरी संरचना का उपयोग करते हैं।

करंट वर्किंग डायरेक्टरी के अंतर्गत पहले दो डायरेक्टरीज़ dir1 और dir2 बनाई जाती हैं। इनमें निम्न फ़ाइलें होती हैं:

--dir1/newfile.txt-- This is a file in dir1
--dir1/file1.txt-- Hello Python
--dir1/file2.txt-- Python Standard Library
--dir2/file1.txt-- Hello Python
--dir2/file2.txt-- Python Library

आइए अब filecmp मॉड्यूल में विभिन्न तुलना फ़ंक्शन्स का वर्णन करें।

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

यह फ़ंक्शन दो फ़ाइलों की तुलना करता है और यदि वे समान हैं तो True लौटाता है, अन्यथा False। shallow पैरामीटर डिफ़ॉल्ट रूप से True है। इसलिए कंटेंट के अलावा फ़ाइल मेटाडेटा को भी तुलना के लिए माना जाता है। यदि shallow को False पर सेट किया जाए, तो केवल कंटेंट की तुलना की जाती है।

हमारी फ़ाइल संरचना के आधार पर, निम्न कोड आउटपुट देता है:

Differing files: ['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')
False

filecmp.cmpfiles(dir1, dir2, shallow)

यह फ़ंक्शन दो डायरेक्टरीज़ में फ़ाइलों की तुलना करता है और तीन आइटम्स का टपल लौटाता है। टपल में पहला आइटम मिलान वाली फ़ाइलों की सूची है, दूसरा अमिलान वाली फ़ाइलों की सूची दिखाता है, और तीसरा कॉमन फ़ाइलों की सूची है।

>>> match, mismatch, errors = filecmp.cmpfiles('dir1', 'dir2', ['file1.txt', 'file2.txt'])
>>> match
['file1.txt']
>>> mismatch
['file2.txt']
>>> errors
[]

filecmp मॉड्यूल dircmp क्लास भी डिफाइन करता है। इसका ऑब्जेक्ट डायरेक्टरी तुलना ऑब्जेक्ट है। यह दो डायरेक्टरीज़ में फ़ाइलों की तुलना करता है, जिन्हें लेफ्ट और राइट डायरेक्टरीज़ के रूप में पहचाना जाता है। ऑब्जेक्ट नीचे वर्णित विभिन्न मेथड्स निष्पादित कर सकता है:

filecmp.dircmp(a, b)

यह कंस्ट्रक्टर है। a और b तुलना की जाने वाली डायरेक्टरीज़ हैं। डिफ़ॉल्ट रूप से डायरेक्टरीज़ में सिस्टम फ़ाइलें छिपी होती हैं और तुलना में नज़रअंदाज़ की जाती हैं।

>>> result = filecmp.dircmp('dir1', 'dir2')

dircmp क्लास में अन्य मेथड्स निम्न हैं:

report()

यह मेथड डायरेक्टरीज़ के बीच तुलना का परिणाम प्रिंट करता है।

>>> result = filecmp.dircmp('dir1', 'dir2')
>>> result.report()
diff dir1 dir2
Only in dir1: ['newfile.txt']
Identical files: ['file1.txt']
Differing files: ['file2.txt']

left, right

ये प्रॉपर्टीज़ dircmp कंस्ट्रक्टर में पहली और दूसरी डायरेक्टरीज़ के नाम प्रिंट करती हैं।

>>> result.left
'dir1'
>>> result.right
'dir2'

left_list, right_list

ये एट्रिब्यूट्स दोनों डायरेक्टरीज़ में फ़ाइलों की सूची लौटाते हैं।

>>> 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
[]

same_files, diff_files

ये एट्रिब्यूट्स dircmp क्लास में डिफाइन तुलना ऑपरेटर का उपयोग करके समान फ़ाइलों और भिन्न फ़ाइलों की सूची लौटाते हैं।

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

इस लेख में dircmp क्लास, इसके मेथड्स और filecmp मॉड्यूल में डिफाइन फ़ाइल तुलना फ़ंक्शन्स पर चर्चा की गई है।

  1. - पायथन का उपयोग करके फ़ाइल कैसे हटाएं?

    आप os मॉड्यूल में फ़ंक्शन्स का उपयोग करके एक सिंगल फ़ाइल या एक सिंगल खाली फ़ोल्डर डिलीट कर सकते हैं। उदाहरण के लिए, यदि आप a.txt फ़ाइल डिलीट करना चाहते हैं, >>> import os >>> os.remove(a.txt) os.remove का आर्गुमेंट एब्सोल्यूट या रिलेटिव पथ होना चाहिए। आप फ़ाइलें हटाने के लिए os.un

  1. - पायथन में फ़ाइल कैसे कॉपी करें?

    shutil मॉड्यूल फ़ाइलों के साथ-साथ पूरे फ़ोल्डरों को कॉपी करने के लिए फ़ंक्शन प्रदान करता है। shutil.copy(source, destination) कॉल करने से source पथ पर मौजूद फ़ाइल, destination पथ पर मौजूद फ़ोल्डर में कॉपी हो जाएगी। (दोनों सोर्स और डेस्टिनेशन स्ट्रिंग्स हैं।) यदि डेस्टिनेशन एक फ़ाइल नाम है, तो इसे क

  1. - पायथन में डायरेक्टरी में एकाधिक फ़ाइलों को कैसे डिलीट करें?

    आप os मॉड्यूल में फ़ंक्शन्स का उपयोग करके एक सिंगल फ़ाइल या एक सिंगल खाली फ़ोल्डर डिलीट कर सकते हैं। उदाहरण उदाहरण के लिए, यदि आप my_file.txt फ़ाइल डिलीट करना चाहते हैं, >>> import os >>> os.remove(my_file.txt) os.remove का आर्गुमेंट एब्सोल्यूट या रिलेटिव पथ होना चाहिए। कई फ़ाइलों