.write()メソッドがうまく機能しない


今、パイソンでファイルを読み込み新しいファイルを作りその中に処理された文字列を入力するコードを書いているのですが、どうも.write()メソッドがうまく機能しません。エラーは出てないのでどうすればいいのか困っています。どこにoutput_file.write(decode(line))を置けばいいでしょうか？？

[code]

    import numpy as np
    import matplotlib.pyplot as plt
    import pandas as pd
    
    def decode(encoded_str):
        decoded_str = ''
        for char in encoded_str:
    
            decoded_str += chr(ord(char)-1)
        return decoded_str
    
    print("Test:",decode('HpJsjti')) #print GoIrish
    
    print('\n')
    
    
    f=open('data/secret_message.txt','r')
    output_file = open('data/secret_message_decoded.txt', 'w')
    
    # read and process the file one line at a time 
    while True:
        line = f.readline()
        print(decode(line))
        if line =='':
            break
        print(decode(line))
    
    output_file.write(decode(line))
    
    
    f.close()
    output_file.close()
    
[/code]




単に`while True:`ループの内側に移動すれば良いでしょう。

原因は、`while True:`ループを`if line =='':`で空文字列と判定してループを抜けた後に1回だけ`.write()`しているためです。  
それでは空文字列を1回writeするだけで出力ファイルには何も書かれないでしょう。

`while
True:`ループでは入力ファイルから1行読み出して復号する処理を繰り返しているので、その結果を1行毎に出力ファイルに書き出したいなら、同じく`while
True:`ループの中で`.write()`する必要があります。

あと、読み込みが単なる`.readline()`だと改行コードも含まれていて、それをそのまま`decode()`に渡して処理しても大丈夫でしょうか？  
[Pythonのreadline()は改行コードも含まれてしまう](https://ytyaru.hatenablog.com/entry/2017/09/13/000000)

そして、`.write()`では指定されたデータを書くだけで改行コードは追加されないのですが、そちらも大丈夫でしょうか？  
[Python でファイル書き込み](https://python.softmoco.com/basics/python-file-write.php)

