本文目錄一覽:
- 1、python生成html文件 環境:ubuntu+python+django
- 2、Python html 模塊簡介
- 3、在python中怎麼生成html格式的郵件並發送
- 4、怎麼用python將word轉成html
- 5、Python3.9.2能編HTML嗎?
- 6、怎樣用python腳本生成一個html格式的測試報告
python生成html文件 環境:ubuntu+python+django
os.mkdir(path[, mode])
python的這個函數可以生成文件夾,你根據自己的需求做就行了
Python html 模塊簡介
比如:
比如,數學符號 , ,可以直接獲得:
escape 將特殊字元 & , 和 替換為HTML安全序列。如果可選的 flags quote 為 True (默認值),則還會翻譯引號字元,包括雙引號( ” )和單引號( ‘ )字元。
將字元串 s 中的所有命名和數字字元引用 (例如 , , ) 轉換為相應的 Unicode 字元。此函數使用 HTML 5 標準為有效和無效字元引用定義的規則,以及 HTML 5 命名字元引用列表 。
這個模塊定義了一個 HTMLParser 類,為 HTML(超文本標記語言)和 XHTML 文本文件解析提供基礎。
class html.parser.HTMLParser(*, convert_charrefs=True) 創建一個能解析無效標記的解析器實例。查找標籤(tags)和其他標記(markup)並調用 handler 函數。
用法:
通過調用 self.handle_starttag 處理開始標籤,或通過調用 self.handle_startendtag 處理結束標籤。標籤之間的數據通過以 data 為參數調用 self.handle_data 從解析器傳遞到派生類(數據可以分成任意塊)。如果 convert_charrefs 為 True ,則將字元引用自動轉換為相應的 Unicode 字元(並且 self.handle_data 不再拆分成塊),否則通過調用帶有字元串的 self.handle_entityref 或 self.handle_charref 來傳遞它們以分別包含命名或數字引用作為參數。如果 convert_charrefs 為 True (默認值),則所有字元引用( script / style 元素中的除外)都會自動轉換為相應的 Unicode 字元。
一個 HTMLParser 類的實例用來接受 HTML 數據,並在標記開始、標記結束、文本、注釋和其他元素標記出現的時候調用對應的方法。要實現具體的行為,請使用 HTMLParser 的子類並重載其方法。
這個解析器不檢查結束標記是否與開始標記匹配,也不會因外層元素完畢而隱式關閉了的元素引髮結束標記處理。
下面是簡單的 HTML 解析器的一個基本示例,使用 HTMLParser 類,當遇到開始標記、結束標記以及數據的時候將內容列印出來。
輸出:
HTMLParser.reset() 重置實例。丟失所有未處理的數據。在實例化階段被隱式調用。
HTMLParser.feed(data) 填充一些文本到解析器中。如果包含完整的元素,則被處理;如果數據不完整,將被緩衝直到更多的數據被填充,或者 close() 被調用。 data 必須為 str 類型。
HTMLParser.close() 如同後面跟著一個文件結束標記一樣,強制處理所有緩衝數據。這個方法能被派生類重新定義,用於在輸入的末尾定義附加處理,但是重定義的版本應當始終調用基類 HTMLParser 的 close() 方法。
HTMLParser.getpos() 返回當前行號和偏移值。
HTMLParser.get_starttag_text() 返回最近打開的開始標記中的文本。結構化處理時通常應該不需要這個,但在處理「已部署」的 HTML 或是在以最小改變來重新生成輸入時可能會有用處(例如可以保留屬性間的空格等)。
下列方法將在遇到數據或者標記元素的時候被調用。他們需要在子類中重載。基類的實現中沒有任何實際操作(除了 handle_startendtag() ):
HTMLParser.handle_starttag 這個方法在標籤開始的時候被調用(例如: div id=”main” )。 tag 參數是小寫的標籤名。 attrs 參數是一個 (name, value) 形式的列表,包含了所有在標記的 括弧中找到的屬性。 name 轉換為小寫, value 的引號被去除,字元和實體引用都會被替換。比如,對於標籤 a href=”” ,這個方法將以下列形式被調用 handle_starttag(‘a’, [(‘href’, ”)]) 。 html.entities 中的所有實體引用,會被替換為屬性值。
HTMLParser.handle_endtag(tag) 此方法被用來處理元素的結束標記(例如: /div )。 tag 參數是小寫的標籤名。
HTMLParser.handle_startendtag(tag, attrs) 類似於 handle_starttag() , 只是在解析器遇到 XHTML 樣式的空標記時被調用( tag … / )。這個方法能被需要這種特殊詞法信息的子類重載;默認實現僅簡單調用 handle_starttag() 和 handle_endtag() 。
HTMLParser.handle_data(data) 這個方法被用來處理任意數據(例如:文本節點和 script…/script 以及 style…/style 中的內容)。
HTMLParser.handle_entityref(name) 這個方法被用於處理 name; 形式的命名字元引用(例如 ),其中 name 是通用的實體引用(例如: ‘gt’ )。如果 convert_charrefs 為 True,該方法永遠不會被調用。
HTMLParser.handle_charref(name) 這個方法被用來處理 NNN; 和 NNN; 形式的十進位和十六進位字元引用。例如, 等效的十進位形式為 ,而十六進位形式為 ;在這種情況下,方法將收到 ’62’ 或 ‘x3E’ 。如果 convert_charrefs 為 True ,則該方法永遠不會被調用。
HTMLParser.handle_comment(data) 這個方法在遇到注釋的時候被調用(例如: )。例如, 這個注釋會用 ‘ comment ‘ 作為參數調用此方法。
Internet Explorer 條件注釋(condcoms)的內容也被發送到這個方法,因此,對於 “,這個方法將接收到 ‘[if IE 9]IE9-specific content![endif]’ 。
HTMLParser.handle_decl(decl) 這個方法用來處理 HTML doctype 申明(例如 !DOCTYPE html )。 decl 形參為 !… 標記中的所有內容(例如: ‘DOCTYPE html’ )。
HTMLParser.handle_pi(data) 此方法在遇到處理指令的時候被調用。 data 形參將包含整個處理指令。例如,對於處理指令 ?proc color=’red’ ,這個方法將以 handle_pi(“proc color=’red'”) 形式被調用。它旨在被派生類重載;基類實現中無任何實際操作。
註解: HTMLParser 類使用 SGML 語法規則處理指令。使用 ‘?’ 結尾的 XHTML 處理指令將導致 ‘?’ 包含在 data 中。
HTMLParser.unknown_decl(data) 當解析器讀到無法識別的聲明時,此方法被調用。 data 形參為 ![…] 標記中的所有內容。某些時候對派生類的重載很有用。基類實現中無任何實際操作。
因此,我們可以如此定義:
下面介紹如何解析 HTML 文檔。
解析一個文檔類型聲明:
解析一個具有一些屬性和標題的元素:
script 和 style 元素中的內容原樣返回,無需進一步解析:
解析注釋:
解析命名或數字形式的字元引用,並把他們轉換到正確的字元(注意:這 3 種轉義都是 ” ):
填充不完整的塊給 feed() 執行, handle_data() 可能會多次調用(除非 convert_charrefs 被設置為 True ):
解析無效的 HTML (例如:未引用的屬性)也能正常運行:
在python中怎麼生成html格式的郵件並發送
Using CSS with html.HTML():
pypi上的例子就講的很詳細,我就不複述了,下面講一下如何在郵件中使用CSS。
郵件客戶端不支持外部樣式,所以我們主要使用內部樣式和內聯樣式。
內部引用CSS樣式
from html import HTML
css = “””
.class1 {
color: #00FF00;
}
.class2 {
color: #FF0000;
}
.class3 {
color: #FFFF00;
}
“””
h = HTML(‘head’)
h.text(‘style{}/style’.format(css), escape=False)
b = HTML(‘body’)
t = b.table(border=’1′)
r = t.tr()
r.td(‘column 1′, klass=’class1’)
r.td(‘column 2′, klass=’class2’)
r.td(‘column 3′, klass=’class3’)
print ‘{} {}’.format(h,b)1234567891011121314151617181920212212345678910111213141516171819202122
內聯引用CSS樣式 (有些郵件客戶端會忽略裡面的樣式,所以推薦使用內聯樣式)
from html import HTML
inline_css={
‘class1′:’color:#00FF00;’,
‘class2′:’color:#FF0000;’,
‘class3′:’color:#FFFF00;’,
}
b = HTML()
t = b.table(border=’1′)
r = t.tr()
r.td(‘column 1’, style=inline_css[‘class1’])
r.td(‘column 2’, style=inline_css[‘class2’])
r.td(‘column 3’, style=inline_css[‘class3’])
print str(b)12345678910111213141234567891011121314
發郵件
Envelopes的例子已經很清楚了。
怎麼用python將word轉成html
#coding=utf-8
#文件名:
#BatchConverWords2Html.py
#說明:
#批量將一個文件夾下的所有.doc/.docx文件轉為.html文件,需要安裝對應的win32模塊
#調用方式:進入源程序目錄,命令:python BatchConverWords2Html.py RootDir
from win32com import client as wc
import os
word = wc.Dispatch(‘Word.Application’)
def wordsToHtml(dir):
for path, subdirs, files in os.walk(dir):
for wordFile in files:
wordFullName = os.path.join(path, wordFile)
#print “word:” + wordFullName
doc = word.Documents.Open(wordFullName)
wordFile2 = unicode(wordFile, “gbk”)
dotIndex = wordFile2.rfind(“.”)
if(dotIndex == -1):
print “********************ERROR: 未取得後綴名!”
fileSuffix = wordFile2[(dotIndex + 1) : ]
if(fileSuffix == “doc” or fileSuffix == “docx”):
fileName = wordFile2[ : dotIndex]
htmlName = fileName + “.html”
htmlFullName = os.path.join(unicode(path, “gbk”), htmlName)
#htmlFullName = unicode(path, “gbk”) + “\\” + htmlName
print “generate html:” + htmlFullName
doc.SaveAs(htmlFullName, 10)
doc.Close()
word.Quit()
print “”
print “Finished!”
if __name__ == ‘__main__’:
import sys
if len(sys.argv) != 2:
print “Usage: python funcName.py rootdir”
sys.exit(100)
wordsToHtml(sys.argv[1])運行結果就是在rootdir目錄下的所有word文檔轉為簡潔版的html網頁文件,生成的文件存在原word同目錄下,生成 xxx.files 文件夾。
Python3.9.2能編HTML嗎?
理論上,win電腦下的編程語言都是可以用html的。比如javaswing。py沒試過。不過py做web/HTTP伺服器的時候,肯定是可以編html的。
怎樣用python腳本生成一個html格式的測試報告
比如很簡單的,可以這樣:
# -*- coding:utf-8 -*-
import os,sys
html = open(‘index.html’, ‘w’)
html.write(“””
html
head
titleTest/title
styleimg{float:left;margin:5px;}/style
/head
body
“””)
files = os.listdir(‘.’)
# 首先處理文本
for f in files:
if f.lower().endswith(‘.txt’):
fp = open(f)
content = fp.read()
fp.close()
html.write(“p%s/p” % content)
# 然後處理圖片
for f in files:
if f.lower().endswith(‘.jpg’) or f.lower().endswith(‘.png’):
html.write(“img src=’%s’ /” % f)
html.write(‘/body/html’)
html.close()
把這個python代碼放在有圖片和txt文本的目錄里,運行就可以了。如果不是jpg,修改增加png,gif就行了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/297966.html