base64変換した文字列をテキストファイルとしてエクスポートすると再インポートした時、値が一致させる方法がわからない


utf-8形式のテキストファイルへ以下のコードで書き出し、再度インポートを行うとbase64のデータをstring型で保持してしまい、元の変数のデータと一致が取れなくなってしまう。

[code]

    base64.b64encode(string型変数.encode())
    
[/code]

### 下記状況

インポートしたテキストの状態 = b'abc'（※string型）  
base64.b64encode(string型変数.encode()) = b'abc'（※bytes型）

if文内でインポートしたテキストと変換元のワードが一致するかチェック処理を行いたいが、インポートしたテキストがstring型の状態でbase64時のテキストを保持しており、デコードができない。

**出てくるエラー:**

[code]

    'str' object has no attribute 'decode'
    
[/code]

エンコード元の変数をインポートした直後の状態に合わせようとするとbyte型からstring変換できません（当たり前）  

どのようにすれば一致させることができますか？  
また、以下のエラーをなんと解釈するべきかわからないのですが教えていただけますでしょうか。

[code]

    エラーコード'utf-8' codec can't decode byte 0xcd in position 3: invalid continuation byte
    
[/code]




コメントで御指摘のように質問の仕方には多少なりとも難はありましたが，質問された方がコメントに対応してコードを提供して頂いたので，個人的には
pythonによる Base64 処理について改めて学ぶ機会を得ました。

そこで，質問された方の追記の方法を日本語の文字列でも確かめてみたところ，少なくとも私の環境（MacOS 12.6, Terminal(utf-8),
Python 3.10.8）では問題なさそうでした。御参考までにコードと出力を転記いたします。

[code]

    import base64
    
    input_str = ('文字列を Base64 エンコードして'
                 'テキストファイルに書き込む\n'
                 'テキストファイルを読み込み'
                 ' Base64 デコードして文字列を取得\n')
    print(f'input_str:\n{input_str}')
    
    write_str = base64.b64encode(input_str.encode()).decode()
    
    with open('tmp_base64.txt', 'w') as f:
        f.write(write_str)
    
    with open('tmp_base64.txt', 'r') as f:
        read_str = f.read()
    
    return_str = base64.b64decode(read_str).decode()
    print(f'return_str:\n{return_str}')
    
    print(f'input_str == return_str:\n{input_str == return_str}')
    
[/code]

[code]

    input_str:
    文字列を Base64 エンコードしてテキストファイルに書き込む
    テキストファイルを読み込み Base64 デコードして文字列を取得
    
    return_str:
    文字列を Base64 エンコードしてテキストファイルに書き込む
    テキストファイルを読み込み Base64 デコードして文字列を取得
    
    input_str == return_str:
    True
    
[/code]

