Ich habe eine base64 Situation in Python ich nicht ganz herausfinden kann - wenn ich mein Skript ausführen:Python: Warum stimmt mein Base64-Dateiname nicht mit dem überein, was er sein sollte?
import rebus
import os
# Set directory
os.chdir('/Users/Ryan/')
# Filename from folder
filename = 'Ryan20160708.txt'
# Create the base64 of the filename
filenameenc = rebus.urlsafe_b64encode(filename)
filebase64 = filenameenc.rstrip()
# Print these for developer
print("Your filename is: " + filename)
print("The base64 encoded filename is: " + filebase64)
ich die folgenden Ergebnisse erhalten:
Your filename is: Ryan20160708.txt
The base64 encoded filename is: UnlhbjIwMTYwNzA4LnR4dAoK
Das größere Skript dafür ist in einem API-Beitrag verwendet, dass ich 500
Fehler immer wieder erhalten habe. Und das war, als ich den base64-Namen genauer untersuchte und erkannte, dass er nicht mit Dingen wie https://www.base64encode.org/ übereinstimmt, die UnlhbjIwMTYwNzA4LnR4dA==
statt UnlhbjIwMTYwNzA4LnR4dAoK
zurückgibt. Nur in den letzten paar Zeichen.
Nur was ich bemerkte, ist, dass, wenn ich meine Base64 in die Website einfüge und es zum Dateinamen zurückdekodieren, kommt es mit dem richtigen Dateinamen zurück (Ryan20160708.txt
), aber es hat zwei Zeilenumbrüche darunter. Obwohl ich mit rstrip()
schon alle zusätzlichen Leerzeichen davon abstreife - bin ich ziemlich fest. Irgendwelche Vorschläge?
Sie bemerkt geben, dass Sie anrufen 'rstrip()' auf dem codierten Text, nicht wahr? –