Python - Đọc tệp ngược
Khi chúng ta thường đọc một tệp, nội dung được đọc từng dòng từ đầu tệp. Nhưng có thể có những tình huống mà chúng ta muốn đọc dòng cuối cùng trước. Ví dụ: dữ liệu trong tệp có bản ghi mới nhất ở dưới cùng và chúng tôi muốn đọc bản ghi mới nhất trước tiên. Để đạt được yêu cầu này, chúng tôi cài đặt gói bắt buộc để thực hiện hành động này bằng cách sử dụng lệnh bên dưới.
pip install file-read-backwards
Nhưng trước khi đọc ngược tệp, chúng ta hãy đọc nội dung của tệp từng dòng để có thể so sánh kết quả sau khi đọc ngược.
with open ("Path\GodFather.txt", "r") as BigFile:
data=BigFile.readlines()
# Print each line
for i in range(len(data)):
print "Line No- ",i
print data[i]
Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:
Line No- 0
Vito Corleone is the aging don (head) of the Corleone Mafia Family.
Line No- 1
His youngest son Michael has returned from WWII just in time to see the wedding of Connie Corleone (Michael's sister) to Carlo Rizzi.
Line No- 2
All of Michael's family is involved with the Mafia, but Michael just wants to live a normal life. Drug dealer Virgil Sollozzo is looking for Mafia families to offer him protection in exchange for a profit of the drug money.
Line No- 3
He approaches Don Corleone about it, but, much against the advice of the Don's lawyer Tom Hagen, the Don is morally against the use of drugs, and turns down the offer.
Line No- 4
This does not please Sollozzo, who has the Don shot down by some of his hit men.
Line No- 5
The Don barely survives, which leads his son Michael to begin a violent mob war against Sollozzo and tears the Corleone family apart.
Đọc ngược dòng
Bây giờ để đọc ngược tệp, chúng tôi sử dụng mô-đun đã cài đặt.
from file_read_backwards import FileReadBackwards
with FileReadBackwards("Path\GodFather.txt", encoding="utf-8") as BigFile:
# getting lines by lines starting from the last line up
for line in BigFile:
print line
Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:
The Don barely survives, which leads his son Michael to begin a violent mob war against Sollozzo and tears the Corleone family apart.
This does not please Sollozzo, who has the Don shot down by some of his hit men.
He approaches Don Corleone about it, but, much against the advice of the Don's lawyer Tom Hagen, the Don is morally against the use of drugs, and turns down the offer.
All of Michael's family is involved with the Mafia, but Michael just wants to live a normal life. Drug dealer Virgil Sollozzo is looking for Mafia families to offer him protection in exchange for a profit of the drug money.
His youngest son Michael has returned from WWII just in time to see the wedding of Connie Corleone (Michael's sister) to Carlo Rizzi.
Vito Corleone is the aging don (head) of the Corleone Mafia Family.
Bạn có thể xác minh các dòng đã được đọc theo thứ tự ngược lại.
Đọc ngược từ
Chúng ta cũng có thể đọc ngược các từ trong tệp. Đối với điều này, trước tiên chúng ta đọc ngược dòng và sau đó mã hóa các từ trong đó bằng cách áp dụng chức năng đảo ngược. Trong ví dụ dưới đây, chúng tôi có các mã thông báo từ được in ngược tạo thành cùng một tệp bằng cách sử dụng cả gói và mô-đun nltk.
import nltk
from file_read_backwards import FileReadBackwards
with FileReadBackwards("Path\GodFather.txt", encoding="utf-8") as BigFile:
# getting lines by lines starting from the last line up
# And tokenizing with applying reverse()
for line in BigFile:
word_data= line
nltk_tokens = nltk.word_tokenize(word_data)
nltk_tokens.reverse()
print (nltk_tokens)
Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:
['.', 'apart', 'family', 'Corleone', 'the', 'tears', 'and', 'Sollozzo', 'against', 'war', 'mob', 'violent', 'a', 'begin', 'to', 'Michael', 'son', 'his', 'leads', 'which', ',', 'srvives', 'barely', 'Don', 'The']
['.', 'men', 'hit', 'his', 'of', 'some', 'by', 'down', 'shot', 'Don', 'the', 'has', 'who', ',', 'Sollozzo', 'please', 'not', 'does', 'This']
['.', 'offer', 'the', 'down', 'trns', 'and', ',', 'drgs', 'of', 'se', 'the', 'against', 'morally', 'is', 'Don', 'the', ',', 'Hagen', 'Tom', 'lawyer', "'s", 'Don', 'the', 'of', 'advice', 'the', 'against', 'mch', ',', 'bt', ',', 'it', 'abot', 'Corleone', 'Don', 'approaches', 'He']
['.', 'money', 'drg', 'the', 'of', 'profit', 'a', 'for', 'exchange', 'in', 'protection', 'him', 'offer', 'to', 'families', 'Mafia', 'for', 'looking', 'is', 'Sollozzo', 'Virgil', 'dealer', 'Drg', '.', 'life', 'normal', 'a', 'live', 'to', 'wants', 'jst', 'Michael', 'bt', ',', 'Mafia', 'the', 'with', 'involved', 'is', 'family', "'s", 'Michael', 'of', 'All']
['.', 'Rizzi', 'Carlo', 'to', ')', 'sister', "'s", 'Michael', '(', 'Corleone', 'Connie', 'of', 'wedding', 'the', 'see', 'to', 'time', 'in', 'jst', 'WWII', 'from', 'retrned', 'has', 'Michael', 'son', 'yongest', 'His']
['.', 'Family', 'Mafia', 'Corleone', 'the', 'of', ')', 'head', '(', 'don', 'aging', 'the', 'is', 'Corleone', 'Vito']