Задача: Программа должна полностью перевернуть файл.
Важно (!): переворачиваться должны и большие файлы тоже.
Вот мои наработки:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
def create_stack():
"""Создать стек"""
return []
def delete_stack(Stack):
"""Удалить стек"""
return None
def is_empty(Stack):
"""Проверка пустоты стека"""
return len(Stack) == 0
def push(Stack, item):
"""Поместить новый элемент в стек"""
Stack.append(item)
def pop(Stack):
"""Снять верхний элемента со стека"""
return Stack.pop()
##Создаем стек
stack=create_stack()
##Хватает ли аргументов? Если да, то выполняем программу...
if len(sys.argv)==3:
##Открываем файл для чтения
f1=open(sys.argv[1], 'r')
##Открываем файл для записи
f2=open(sys.argv[2], 'w')
##Делаем переменную, которая будет проверять закончился ли файл
s=True
while s:
##Делаем пустую (чистим) переменную, в которую будем пихать перевернутую строку
p=''
##Читаем из файла строку
s=f1.readline()
for k in range(0,len(s)):
##По очереди добавляем каждый элемент строки в начало
p=s[k]+p
##Пихаем перевернутую строку в стек
push(stack,p)
#Теперь по очереди помещаем элементы стека во второй файл, пока стек не опустеет#
while is_empty(stack)==False:
f2.write(pop(stack))
##Если не хватает, то объясняем как записывать
else:
print 'Forma zaprosa: rev.py otkuda kuda'
Желательно сделать так, чтобы использовались абстрактные типы данных типа стека, но чтобы были реализованы вот как у меня в наработках.
Заранее спасибо.