I'm creating a Python script to create a HTML document with the message containing HTML code in triple quotes. How would I go about formatting some of the text inside the triple quote?
Solved! Go to Solution.
I figured it out with a simple solution.
I exit the triple quotes with triple quotes then added my variables by using + "{}".format(row[0]) + then re adding triple quotes to continue the string.
mess with single and double quotes and escaping... at least in python 3
a = """ \'hello\' said "the \"parrot\" """
print(a)
'hello' said "the "parrot"
a
' \'hello\' said "the "parrot" '
but if you want to keep the triple quotes then you have to single quote the triple quotes so that they appear but not affect the escaped quotes…
a = '""" \'hello\' said "the \"parrot\" """'
print(a)
""" 'hello' said "the "parrot" """
a
Out[8]: '""" \'hello\' said "the "parrot" """'
simple ehh???
In the Python script below I'm creating an HTML document with a hyperlink to generate an email. How would I use formatting .format(row[0]) in the body section of the email?
import arcpy, datetime, os
arcpy.env.overwriteOutput = True
points = r"***********"
today = datetime.date.today()
dte = today.strftime('%m/%d/%Y')
dtep = today.strftime('%m%d%Y')
fields = ['Applicant', 'Date_Final', 'Email', 'Permit_No']
arcpy.MakeFeatureLayer_management(points, 'FinalizedApproaches')
f= open("Finalized_{}.html".format(dtep),"w+")
with arcpy.da.SearchCursor(points, fields, "Date_Final = CURRENT_DATE") as cursor:
for row in cursor:
message = """<!DOCTYPE html>
<html>
<head>
<style>
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #dddddd;
}
</style>
</head>
<body>
<h2>Notification Report</h2>
<table>
<tr>
<th>Customer</th>
<th>Status</th>
<th>Date</th>
<th>Email</th>
</tr>
<tr>
<td>Test Name</td>
<td>Finalized</td>
<td>08/30/2018</td>
<td><a href="mailto:test@email.com&subject=Permit Status: Finalized&body={}",%0D%0AThis is to notify you that your approach has been finalized. Please use the link below to view your permit documentation.%0D%0A%0D%0Ahttps://www.arcgis.com">Notify</a></>
</tr>
</table>
</body>
</html>"""
f.write(message)
f.close()
print "{} Finalized report generate".format(dte)
did you try some of the suggestions for formatting within the triple quote?
What did your code produce
I tested your suggestions and it still just produces {} in the body of the email.
perhaps you will have to google, …. html email python
I don't think it is just the triple quotes
For example
I'm really just looking to have an email composed based on a fields from a search cursor using python but I want to be able to send it manually.
a and b would be inputs from your cursor???
Sorry, but maybe Joe Borgione might have had to do email notification or knows someone that does
a = "Hey folks..."
b = "\nhttp://www.python.org"
t = "{}\nHow are you?\nHere is the link you wanted:{}".format(a, b)
h = """\
<html>
<head></head>
<body>
<p>{}
How are you?<br>
Here is the link you wanted.
{}
</p>
</body>
</html>
""".format(a, b)
print("{}\n{}".format(t, h))
Hey folks...
How are you?
Here is the link you wanted:
http://www.python.org
<html>
<head></head>
<body>
<p>Hey folks...
How are you?<br>
Here is the link you wanted.
http://www.python.org
</p>
</body>
</html>
I figured it out with a simple solution.
I exit the triple quotes with triple quotes then added my variables by using + "{}".format(row[0]) + then re adding triple quotes to continue the string.