दिलचस्प पोस्ट
एंड्रॉइड में यूएसबी डिबगिंग कैसे सक्षम करें? आईआईएस पर .htaccess या .htpasswd समकक्ष? आरवीएम स्थापना काम नहीं कर रहा है: "आरवीएम एक फ़ंक्शन नहीं है" Tensorflow नाएन बग? कैसे अलग AngularJS नियंत्रक फ़ाइलें बनाने के लिए? sc.exe के साथ एक सेवा बनाना; कैसे संदर्भ पैरामीटर में पास करने के लिए किसी अन्य सरणी से संबंधित सरणी को क्रमबद्ध करना Printf / string.format के बराबर जावास्क्रिप्ट क्या सी के किसी भी दो-दो-पूरक पूरक हैं? एक्सप्रेस नोड जेएस में यूआरएल पैरामीटर कैसे प्राप्त करें कैसे पुराने स्थापना का पता लगाने और हटाने की पेशकश? जावास्क्रिप्ट का उपयोग करके एकल कुकी मूल्य प्राप्त करने और सेट करने का "सर्वोत्तम" तरीका क्या है ब्रेका और कोष्ठक के बीच स्काला में औपचारिक अंतर क्या है, और उनका उपयोग कब किया जाना चाहिए? ध्यान IE में काम नहीं करता है कैसे पता करें कि कोई तत्व किसी सरणी में है या नहीं

पायथन में difflib का उपयोग करके दो .txt फ़ाइलों की तुलना करना

मैं दो पाठ फ़ाइलों की तुलना करने की कोशिश कर रहा हूं और तुलना फ़ाइल में पहली स्ट्रिंग आउटपुट करता हूं, जो मेल नहीं खाता है, लेकिन मुझे समस्या आ रही है क्योंकि मैं अजगर के लिए बहुत नया हूं। क्या कोई मुझे इस मॉड्यूल का उपयोग करने के लिए एक नमूना तरीका दे सकता है

जब मैं ऐसा कुछ करने की कोशिश करता हूं:

result = difflib.SequenceMatcher(None, testFile, comparisonFile) 

मुझे यह कहने में कोई त्रुटि मिलती है कि प्रकार 'फ़ाइल' की वस्तु का कोई लेन नहीं है

वेब के समाधान से एकत्रित समाधान "पायथन में difflib का उपयोग करके दो .txt फ़ाइलों की तुलना करना"

शुरुआत के लिए, आपको स्ट्रिंग को difflib.SequenceMatcher पर पास करने की आवश्यकता है, फ़ाइलें नहीं:

 # Like so difflib.SequenceMatcher(None, str1, str2) # Or just read the files in difflib.SequenceMatcher(None, file1.read(), file2.read()) 

वह वैसे भी आपकी त्रुटि ठीक कर देंगे। पहली गैर-मिलान वाली स्ट्रिंग पाने के लिए, मैं आपको difflib प्रलेखन की अद्भुत दुनिया के लिए निर्देशित कर दूँगा ।

पायथन डिफिबिल का उपयोग करते हुए दो फ़ाइलों की सामग्री की तुलना करने का एक त्वरित उदाहरण है …

 import difflib file1 = "myFile1.txt" file2 = "myFile2.txt" diff = difflib.ndiff(open(file1).readlines(),open(file2).readlines()) print ''.join(diff), 

क्या आप वाकई दोनों फाइल मौजूद हैं?

बस इसका परीक्षण किया और मुझे एक सही परिणाम मिला।

परिणाम प्राप्त करने के लिए मैं कुछ पसंद करता हूं:

 import difflib diff=difflib.ndiff(open(testFile).readlines(), open(comparisonFile).readlines()) try: while 1: print diff.next(), except: pass 

प्रत्येक पंक्ति का पहला चरित्र इंगित करता है कि क्या वे अलग-अलग हैं: उदाहरण: '+' का अर्थ है कि निम्नलिखित पंक्ति को जोड़ा गया है, आदि।

ऐसा लगता है कि आपको फ़िफ़िबिल की ज़रूरत नहीं है। यदि आप रेखा से लाइन की तुलना कर रहे हैं, तो ऐसा कुछ प्रयास करें:

 test_lines = open("test.txt").readlines() correct_lines = open("correct.txt").readlines() for test, correct in zip(test_lines, correct_lines): if test != correct: print "Oh no! Expected %r; got %r." % (correct, test) break else: len_diff = len(test_lines) - len(correct_lines) if len_diff > 0: print "Test file had too much data." elif len_diff < 0: print "Test file had too little data." else: print "Everything was correct!"