2015-04-12 3 views
0

У меня есть эта функция: write_reversed_file(input_filename, output_filename), которая записывает в указанный выходной файл содержимое данного входного файла с строками в обратном порядке. Мне просто нужен вывод для записи в файл (output_filename), а не на терминал (оболочка python).сохранение данных в файл, а не возврат на терминал

Единственная часть, которую я пропустил, - это сохранение вывода в файл. Мне удалось выполнить часть реверсивных линий.

def write_reversed_file(input_filename, output_filename): 
    for line in reversed(list(open(filename))): 
     print(line.rstrip())  
+0

оболочки перенаправление вывода, как в 'питона foo.py> output.txt', может быть достаточным. – 9000

ответ

0
def write_reversed_file(input_filename, output_filename): 
    s = "" 
    f = open(input_filename,"r") 
    lines = f.read().split("\n") 
    f.close() 
    for line in reversed(lines): 
     s+=line.rstrip()+"\n" 
    f = open(outPutFile.txt,"w") 
    f.write(s) 
    f.close() 
0

Это хорошая практика, чтобы использовать «с открытыми, как» формат при работе с файлами, так как он автоматически закрывать файл для нас. (Как это рекомендовано в docs.python.org)

def write_reversed_file(input_filename, output_filename): 
    with open(output_filename, 'w') as f: 
     with open(input_filename, 'r') as r: 
      for line in reversed(list(r.read())): 
       f.write(line) 

write_reversed_file("inputfile.txt", "outputfile.txt")