J'ai eu un problème similaire : Je voulais que ma chaîne entre guillemets soit indentée, mais je ne voulais pas que la chaîne ait tous ces espaces au début de chaque ligne. J'ai utilisé re
pour corriger mon problème :
print(re.sub('\n *','\n', f"""Content-Type: multipart/mixed; boundary="===============9004758485092194316=="
` MIME-Version: 1.0
Subject: Get the reader's attention here!
To: recipient@email.com
--===============9004758485092194316==
Content-Type: text/html; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Very important message goes here - you can even use <b>HTML</b>.
--===============9004758485092194316==--
"""))
Ci-dessus, j'ai pu garder mon code indenté, mais la chaîne de caractères est restée essentiellement coupée. Tous les espaces au début de chaque ligne ont été supprimés. C'était important car tout espace devant les lignes spécifiques SMTP ou MIME briserait le message électronique.
Le compromis que j'ai fait est que j'ai laissé la Content-Type
sur la première ligne parce que le regex
que j'utilisais n'a pas supprimé l'initiale \n
(qui a cassé l'email). Si cela me dérangeait suffisamment, je suppose que j'aurais pu ajouter un lstrip comme celui-ci :
print(re.sub('\n *','\n', f"""
Content-Type: ...
""").lstrip()
Après avoir lu cette page vieille de 10 ans, j'ai décidé de m'en tenir à re.sub
puisque je n'ai pas vraiment compris toutes les nuances de textwrap
y inspect
.