Python - Membaca File Mundur

Ketika kita biasanya membaca file, isinya dibaca baris demi baris dari awal file. Tetapi mungkin ada skenario di mana kita ingin membaca baris terakhir terlebih dahulu. Misalnya, data di file memiliki record terbaru di bagian bawah dan kita ingin membaca record terbaru terlebih dahulu. Untuk mencapai persyaratan ini kami menginstal paket yang diperlukan untuk melakukan tindakan ini dengan menggunakan perintah di bawah ini.

pip install file-read-backwards

Tetapi sebelum membaca file secara terbalik, mari kita membaca konten file baris demi baris sehingga kita dapat membandingkan hasilnya setelah membaca mundur.

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]

Ketika kami menjalankan program di atas, kami mendapatkan output berikut -

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.

Membaca Garis Mundur

Sekarang untuk membaca file secara terbalik kita menggunakan modul yang diinstal.

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

Ketika kami menjalankan program di atas, kami mendapatkan output berikut -

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.

Anda dapat memverifikasi bahwa baris telah dibaca dalam urutan terbalik.

Membaca Kata Mundur

Kami juga dapat membaca kata-kata dalam file tersebut secara terbalik. Untuk ini pertama-tama kita membaca baris-baris tersebut secara terbalik dan kemudian memberi tanda pada kata-kata di dalamnya dengan menerapkan fungsi terbalik. Dalam contoh di bawah ini kami memiliki token kata yang dicetak terbalik dari file yang sama menggunakan paket dan modul 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)

Ketika kami menjalankan program di atas, kami mendapatkan output berikut -

['.', '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']