حذف کلمات تکراری فایل با پایتون
تصور کنید یک فایل متنی با پسوندهای رایج مثل txt دارید و در هر خط آن یک کلمه است و این فایل دارای خطهای زیادی از متن است و شما نیاز دارید کلمات تکراری را در این فایل حذف کنید؛ اینجاست که به صورت معقول امکان حذف کلمات تکراری به صورت دستی نیست و البته میتوانید اینکار را انجام دهید ولی کمی زمانبر است. وقتی زبانهای برنامه بنویسی به میان آمدند و کامپیوترها به زندگی ما ورود کردند قرار است کارهای ما را سادهتر کنند نه اینکه کارهای ساده را پیچیدهتر کنند. در این نوشته به بررسی نحوهی حذف کلمات تکراری در یک فایلمتنی با کمک زبان برنامه نویسی پایتون میپردازیم.
پیشنهاد نویسنده: معرفی فریمورکهای پایتون
حذف کلمات تکراری فایل با پایتون
برای اینکار از تکه برنامهی زیر استفاده کنید تا به سادگی امکان حذف این کلمات تکراری ایجاد شود:
fname = "input.txt" fhand = open(fname) AllWords = list() ResultList = list() for line in fhand: line.rstrip() words = line.split() AllWords.extend(words) AllWords.sort() for word in AllWords: if word not in ResultList: ResultList.append(word) with open('output.txt', 'w') as filehandle: for listitem in ResultList: filehandle.write('%s\n' % listitem) print(ResultList)
در کد بالا ابتدا متنها از یک فایل ورودی با نام input.txt خوانده میشود در یک حلقه تمام کلمات بررسی میشود و کلمات تکراری حذف شده و یک لیست یا آرایه از کلمات unique یا یکتا باقی میماند که در فایل output.txt مینویسد.
حذف جملات تکراری در فایل با کمک پایتون
اگر نیاز به حذف جملات تکراری دارید نیز میتوانید از کد زیر استفاده کنید:
lines_seen = set() # holds lines already seen with open("output.txt", "w") as output_file: for each_line in open("input.txt", "r"): if each_line not in lines_seen: # check if line is not duplicate output_file.write(each_line) lines_seen.add(each_line)
اگر روشهای بهتری برای انجام اینکار در اختیار دارید در بخش نظرات همین نوشته آن را برای ما بنویسید تا با دیگران به اشتراک بگذاریم.
مورد دومی رو نتونستم وارد کنم برای اینکه اون دنبال فایلی به همین نام میگرده درحالیکه چنین فایل در سیستمم موجود نیست من فقط برای وارد کردن حروف و حذف کپی کلمه بودم
باید نام فایل اول شما input.txt باشد و یک فایل خالی output.txt داشته باشید