私はPython=に不慣れですが、私を悩ませている問題があります。
次のコードを使用して、Zipファイルのbase64文字列表現を取得します。
with open( "C:\\Users\\Mario\\Downloads\\exportTest1.Zip",'rb' ) as file:
zipContents = file.read()
encodedZip = base64.encodestring(zipContents)
ここで、文字列を出力すると、b ''表現の中に含まれます。これは私にとっては必要ないので避けたいです。また、別の問題である76文字ごとに改行文字が追加されます。バイナリコンテンツを取得して、改行文字と後続および先頭のbなしでそれを表す方法はありますか?
比較のために、PowerShellで次のようにすると、
$fileName = "C:\Users\Mario\Downloads\exportTest1.Zip"
$fileContentBytes = [System.IO.File]::ReadAllBytes($fileName)
$fileContentEncoded = [System.Convert]::ToBase64String($fileContentBytes)
私が探している正確な文字列を取得します。b ''も\ nも76文字ごとにありません。
"バイトのようなオブジェクトsをエンコードします。これには任意のバイナリデータを含めることができ、base64でエンコードされたデータを含む
bytes
を返し、改行(_b"\n"
_)を挿入します出力の76バイトごとに、RFC 2045(MIME)に従って、後続の改行があることを確認します。 "
使いたい
"Base64を使用してバイトのようなオブジェクトをエンコードし、エンコードされた
bytes
を返します。"
例:
_import base64
with open("test.Zip", "rb") as f:
encodedZip = base64.b64encode(f.read())
print(encodedZip.decode())
_
decode()
は、バイナリ文字列をテキストに変換します。
_b64encode
_を使用して改行なしでエンコードし、結果のバイナリ文字列を.decode('ascii')
でデコードして通常の文字列を取得します。
_encodedZip = base64.b64encode(zipContents).decode('ascii')
_