Python ծրագիր երկու տեքստային ֆայլերից եզակի տողեր գտնելու համար
Շատ անգամ մենք տեսնում ենք երկու ֆայլ, որոնք նման են, բայց ունեին որոշակի տարբերություններ: Եթե ֆայլերը մեծ են կամ ունեն շատ բովանդակություն, այդ տարբերությունը որոնելը կամ այդ ֆայլի եզակիությունը ձեռքով գտնելը հեշտ չէ: Այնուամենայնիվ, երկու տեքստային ֆայլերում եզակի տողեր գտնելու այս խնդիրը կարելի է հեշտությամբ կատարել Python ծրագրերի միջոցով: Այս հոդվածում, օգտագործելով երեք տարբեր օրինակներ, տրված են երկու տեքստային ֆայլերում եզակի տողեր գտնելու երեք տարբեր եղանակներ: Օգտագործված տեքստային ֆայլերն են a.txt և b.txt, մինչդեռ վերջում արդյունքը պահվում է մեկ այլ txt ֆայլում:
Այս օրինակի համար txt ֆայլերի բովանդակության կամ տողերի տարբերությունները ներկայացված են այստեղ −
Lines Given In text files | In a.txt | In b.txt |
---|---|---|
Introduction to Computers |
Yes |
Yes |
Introduction to Programming Concepts |
Yes |
Yes |
Introduction to Windows, its Features, Application |
Yes |
Yes |
C++ Programming |
No |
Yes |
Computer Organization Principles |
Yes |
Yes |
Database Management Systems |
Yes |
Yes |
Introduction to Embedded Systems |
Yes |
Yes |
Fundamentals of PHP |
Yes |
Yes |
Mathematical Foundation For Computer Science |
Yes |
No |
Java Programming |
Yes |
Yes |
Functions |
Yes |
Yes |
Arrays |
Yes |
Yes |
Disk Operating System |
Yes |
Yes |
Introduction to Number system and codes |
No |
Yes |
Data Mining |
Yes |
Yes |
Software Engineering |
Yes |
No |
Computer Networks |
Yes |
Yes |
Control Structures |
Yes |
Yes |
Օրինակ 1 - Գտեք եզակի տողեր երկու տեքստային ֆայլերից՝ կրկնելով և համեմատելով երկու ֆայլերի առանձին տողերը:
Ալգորիթմ
Քայլ 1 - Բացեք երկու տեքստային ֆայլերը կարդալու ռեժիմում:
Քայլ 2 - Կարդացեք տողերը a.txt-ում afile-ում և readlines-ը b.txt-ում և պահեք այն bfile-ում:
Քայլ 3 - Ստեղծեք դատարկ ցուցակ, որը կոչվում է cfile: Անցեք տող առ տող bfile-ում: Եթե աֆայլում տող չկա, այն կցեք cfile-ին:
Քայլ 4 - Այժմ անցեք տող առ տող ֆայլում: Եթե bfile-ում տող չկա, այն կցեք cfile-ին: Գրեք cֆայլը finalRes.txt-ում:
Քայլ 5 - Գործարկեք ծրագիրը և ստուգեք արդյունքը:
Python ֆայլը պարունակում է սա
af = open('a.txt', 'r')
afile = af.readlines()
bf = open('b.txt', 'r')
bfile = bf.readlines()
cfile=[]
for ln in bfile:
if ln not in afile:
cfile.append(ln)
for ln in afile:
if ln not in bfile:
cfile.append(ln)
resultFile= open('finalRes.txt', 'w')
for lin in cfile:
resultFile.write(lin)
Դիտելով արդյունքը - Օրինակ 1
Որպես արդյունքում երկու txt ֆայլերում եզակի գծերը տեսնելու համար գործարկեք Python ֆայլը cmd պատուհանում:
C++ Programming
Mathematical Foundation For Computer Science
Software Engineering
Նկար 1: Արդյունքների ֆայլի բովանդակությունը, որը կոչվում է finalRes.txt:
Օրինակ 2. Գտեք եզակի տողեր երկու տեքստային ֆայլերից՝ օգտագործելով difflib գրադարանի մոդուլը:
Ալգորիթմ
Քայլ 1 − Առաջին ներմուծումը Տարբերեք մոդուլը difflib-ից:
Քայլ 2 - Բացեք երկու տեքստային ֆայլերը կարդալու ռեժիմում:
Քայլ 3 - Կարդացեք տողերը a.txt-ում afile-ում և readlines-ը b.txt-ում և պահեք դրանք bfile-ում:
Քայլ 4 - Համեմատեք ֆայլերի տարբերությունները՝ օգտագործելով Differ մոդուլը: Արդյունքը գրեք finalRes1.txt-ում:
Քայլ 5 - Գործարկեք ծրագիրը և ստուգեք արդյունքը:
Python ֆայլը պարունակում է սա
from difflib import Differ
af = open('a.txt', 'r')
afile = af.readlines()
bf = open('b.txt', 'r')
bfile = bf.readlines()
result = list(Differ().compare(afile, bfile))
resultFile= open('finalRes1.txt', 'w')
for lin in result:
resultFile.write(lin)
Արդյունքի դիտում - Օրինակ 2
Բացեք cmd պատուհանը և գործարկեք python ֆայլը՝ արդյունքը տեսնելու համար: Արդյունքների ֆայլը ցույց կտա – կամ + երկու ֆայլերի եզակի գծերի դիմաց: + նշանը նշանակում է, որ այդ տողը տրված չէ առաջին txt ֆայլում, մինչդեռ - նշանակում է, որ այդ տողը չկա երկրորդ txt ֆայլում:
Introduction to Computers
Introduction to Programming Concepts
Introduction to Windows, its Features, Application
+ C++ Programming
Computer Organization Principles
Database Management Systems
Introduction to Embedded Systems
Fundamentals of PHP
- Mathematical Foundation For Computer Science
Java Programming
Functions
Arrays
Disk Operating System
Introduction to Number system and codes
Data Mining
- Software Engineering
Computer Networks
Control Structures
Նկար 2: Արդյունքների ֆայլի բովանդակությունը, որը կոչվում է finalRes1.txt
Օրինակ 3. Գտեք եզակի տողեր երկու տեքստային ֆայլերից՝ օգտագործելով հեռացնելով նմանատիպ տողերը և պահպանելով եզակի տողերը:
Ալգորիթմ
Քայլ 1 - Բացեք երկու տեքստային ֆայլերը կարդալու ռեժիմում:
Քայլ 2 - Կարդացեք a.txt տողերը afile-ում և բացեք b.txt-ը և պահեք այն bf-ում:
Քայլ 3 - bf-ի բոլոր տողերի համար, եթե այդ տողը գտնվում է afile-ում, հեռացրեք այն ֆայլից: Եթե այն աֆայլում չէ, միացրեք այն մեկ այլ ցուցակի, որը կոչվում է uniqueB
Քայլ 4 - Կցեք afile-ում մնացած տողերը, իսկ uniqueB-ում գտնվող տողերը cfile-ին: Գրեք cֆայլը finalRes2.txt-ում:
Քայլ 5 - Տեղադրեք ծրագիրը և ստուգեք արդյունքը:
Python ֆայլը պարունակում է սա
with open('a.txt', 'r') as af:
afile = set(af)
uniqueB = []
cfile=[]
with open('b.txt', 'r') as bf:
for ln in bf:
if ln in afile:
afile.remove(ln)
else:
uniqueB.append(ln)
print("\nPrinting all unique lines in both a.txt and b.txt : ")
print('\nAll the lines in a.txt file that are not in b.txt: \n')
for ln in sorted(afile):
print(ln.rstrip())
cfile.append(ln)
print()
print('\nAll the lines in b.txt file that are not in a.txt: \n')
for lin in uniqueB:
print(lin.rstrip())
cfile.append(lin)
print()
resultFile= open('finalRes2.txt', 'w')
for lin in cfile:
resultFile.write(lin)
Արդյունքի դիտում - Օրինակ 3
Որպես արդյունքում երկու txt ֆայլերում էլ տեսնեք եզակի տողեր, գործարկեք Python ֆայլը cmd պատուհանում:
Mathematical Foundation For Computer Science
Software Engineering
C++ Programming
Նկար 3. Արդյունքների ֆայլի բովանդակությունը, որը կոչվում է finalRes2.txt:
Եզրակացություն
Python-ի այս հոդվածում, օգտագործելով երեք տարբեր օրինակներ, տրված են երկու տեքստային ֆայլերում եզակի տողեր գտնելու ուղիները: Օրինակ 1-ում պարզ կրկնումը և համեմատումը օգտագործվում է տող առ տող անցնելով երկու txt ֆայլերում: Օրինակ 2-ում օգտագործվում է գրադարանային մոդուլ, որը կոչվում է Differ from difflib: Օրինակ 3-ում նմանատիպ տողերը հեռացվում են՝ պահպանելով եզակի տողերը՝ օգտագործելով Python ցուցակները: