Programa Python para invertir el contenido de un archivo usando Stack

Dado un archivo, la tarea es imprimir y almacenar las líneas de ese archivo en orden inverso usando Stack.
Ejemplos: 
 

Input :
I am
new to this
world of
Python.

Output :
Python.
world of
new to this
I am


Input :
1
2
3
4
5
Output :
5
4
3
2
1

Acercarse: 
 

  • Crea una pila vacía. 
     
  • Una por una empuja cada línea del archivo a la pila. 
     
  • Una por una, extraiga cada línea de la pila y vuelva a colocarlas en el archivo. 
     

A continuación se muestra la implementación.
Fichero de entrada:
 

reverse-file-python

Python3

# Python3 code to reverse the lines
# of a file using Stack.
   
      
# Creating Stack class (LIFO rule)
class Stack:
      
    def __init__(self):
          
        # Creating an empty stack
        self._arr = []
          
    # Creating push() method.
    def push(self, val):
        self._arr.append(val)
   
    def is_empty(self):
          
        # Returns True if empty
        return len(self._arr) == 0
  
    # Creating Pop method.
    def pop(self):
          
        if self.is_empty():
            print("Stack is empty")
            return
          
        return self._arr.pop()
  
# Creating a function which will reverse
# the lines of a file and Overwrites the 
# given file with its contents line-by-line
# reversed
def reverse_file(filename):
       
    S = Stack()
    original = open(filename)
      
    for line in original:
        S.push(line.rstrip("\n"))
      
    original.close()
       
       
    output = open(filename, 'w')
      
    while not S.is_empty():
        output.write(S.pop()+"\n")
      
    output.close()
  
  
# Driver Code
filename = "GFG.txt"
  
# Calling the reverse_file function
reverse_file(filename)
   
# Now reading the content of the file
with open(filename) as file:
        for f in file.readlines():
            print(f, end ="")

Producción:
 

This is a World of Geeks.
Welcome to GeeksforGeeks.

python-reverse-file-using-stack

Publicación traducida automáticamente

Artículo escrito por mahi_07 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *