
HTML(超文本标记语言)是一种用于创建网页的标记语言,能让开发者构建内容丰富、视觉吸引力强的页面布局。然而,HTML 文件通常包含大量标签,若仅需获取主要内容,这些标签会使其难以阅读。通过 Python 将 HTML 转换为文本,可轻松解决这一问题。与原始 HTML 不同,转换后的文本文件会剥离所有不必要的标记,仅保留干净易读的内容,更便于存储、分析或进一步处理。
主要内容:
推荐使用 Spire.Doc for Python 实现转换。该 Python Word 库不仅是轻量高效的 HTML 转文本工具,还支持几乎所有 Word 操作(如创建、内容编辑等),兼容性强、上手简单。
通过 pip 命令安装(推荐)
打开终端 / 命令行,执行以下命令即可自动完成安装:
pip install spire.doc
借助 Spire.Doc for Python,仅需 3 个简单步骤即可将本地 HTML 文件转换为纯文本:创建 Document 对象 → 加载 HTML 文件 → 保存为 TXT 格式。整个过程简洁高效,新手也能轻松上手!下面详细介绍代码实现:
代码示例 — HTML 文件转 TXT 文本文件
from spire.doc import *
from spire.doc.common import *
# 打开 HTML 文件
document = Document()
document.LoadFromFile("sample.html.html", FileFormat.Html, XHTMLValidationType.none)
# 保存为文本文件
document.SaveToFile("HTML转文本.txt", FileFormat.Txt)
document.Close()
转换效果预览(源文件 vs 输出文件):

请注意:若 HTML 文件包含表格,输出的文本文件将仅保留表格中的数据,无法保留原始表格格式。若希望移除标记的同时保留特定样式,建议先将 HTML 转换为 Word 文档,这样可保留标题、表格等格式,让内容更易于编辑和使用。
如果仅需提取网页部分内容(如爬取的 HTML 片段),可直接将 HTML 字符串转换为文本,无需加载完整 HTML 文件,更灵活高效。
Spire.Doc 转换 HTML 字符串到文本文件的实现步骤:
Document 对象并添加节(Section)和段落(Paragraph);Paragraph.AppendHTML() 方法将 HTML 字符串插入段落;Document.SaveToFile() 方法将文档保存为 .txt 文件。代码示例 — HTML 字符串转 TXT 文本文件
from spire.doc import *
from spire.doc.common import *
# 获取 HTML 字符串(可注释下方代码,取消注释读取本地文件的逻辑)
# with open(inputFile) as fp:
# html = fp.read()
# 定义 HTML 字符串
html = """
<html>
<body>
<h1>示例HTML内容</h1>
<p>这是一个包含<strong>粗体</strong>和<em>斜体</em>文本的段落。</p>
<p>另一行带有<a href='https://example.com'>链接</a>。</p>
<ul>
<li>列表项1</li>
<li>列表项2(带有<em>斜体</em>文本)</li>
</ul>
<p>特殊字符:© & ®</p>
</body>
</html>
"""
# 创建新文档
document = Document()
section = document.AddSection()
# 将 HTML 字符串插入段落
section.AddParagraph().AppendHTML(html)
# 保存为 TXT 文件
document.SaveToFile("HTML字符串转文本.txt", FileFormat.Txt)
document.Close()
转换后的 TXT 文件预览:

借助 Spire.Doc for Python,仅需几行代码即可完成 HTML 文件 / 字符串到纯文本的转换,操作简单、效率高,且能适配大多数实际场景。若需探索更多功能,可申请 30 天免费试用许可,解锁全部功能。
无论是数据分析、内容提取还是文档处理,HTML 转文本都是高频需求 — 掌握这一技巧,能大幅提升 Python 数据处理的灵活性和效率!
答:可通过遍历文件夹内的 HTML 文件,循环调用 Spire.Doc 的转换逻辑实现批量处理,核心是结合os模块遍历文件,示例代码如下:
from spire.doc import *
from spire.doc.common import *
import os
# 定义输入/输出文件夹路径
input_folder = "./html_files"
output_folder = "./txt_files"
# 确保输出文件夹存在
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 遍历输入文件夹下所有HTML文件
for filename in os.listdir(input_folder):
if filename.endswith(".html") or filename.endswith(".htm"):
# 拼接文件路径
input_path = os.path.join(input_folder, filename)
# 生成输出文件名(替换后缀为txt)
output_filename = os.path.splitext(filename)[0] + ".txt"
output_path = os.path.join(output_folder, output_filename)
# 执行转换逻辑
document = Document()
document.LoadFromFile(input_path, FileFormat.Html, XHTMLValidationType.none)
document.SaveToFile(output_path, FileFormat.Txt)
print(f"成功转换:{filename} → {output_filename}")
document.Close()
答:可以。Spire.Doc 内置了对格式错误 HTML 的容错能力,但需要禁用严格验证以确保正确解析,即加载 HTML 文件时,使用 XHTMLValidationType.none 跳过严格的 XHTML 检查:
答:Spire.Doc for Python 仅处理 HTML 中的文本内容,图片(<img>)、视频(<video>)、音频(<audio>)等媒体标签会被直接剥离,不会在文本中保留标签本身或媒体文件相关信息。
CSV(逗号分隔值)是一种用于存储表格数据的通用文件格式,而列表是 Python 中用于轻松进行数据操作的基本数据结构。在 Python 中将 CSV 转换为列表,能实现数据的无缝处理、分析及与其他工作流的集成。虽然 Python 内置的 csv 模块可满足基础需求,但 Spire.XLS for Python 凭借类电子表格的直观界面,能更简化结构化 CSV 数据的处理流程。
本文将通过实用代码示例介绍如何使用 Python 读取 CSV 并转化为列表,覆盖从基础到进阶的各类场景。
目录:
Spire.XLS 是一款强大的电子表格处理库,在 CSV 处理方面优势显著:
安装步骤
开始前,通过 pip 安装Spire.XLS for Python:
pip install Spire.XLS
该命令会安装最新稳定版本,安装完成后即可直接在项目中使用。
若 CSV 文件无标题行(纯数据行),Spire.XLS 可直接读取行数据并将其转换为“列表的列表”(每个子列表对应 CSV 中的一行)。
操作步骤:
Spire.XLS 模块;Workbook 对象并加载 CSV 文件;CSV 转列表的 Python 代码示例:
from spire.xls import *
from spire.xls.common import *
# 初始化工作簿并加载 CSV 文件
workbook = Workbook()
workbook.LoadFromFile("数据.csv", ",")
# 获取第一个工作表
sheet = workbook.Worksheets[0]
# 初始化列表用于存储转换后的数据
data_list = []
# 遍历工作表的每一行
for i in range(sheet.Rows.Length):
row = [] # 存储当前行的数据
# 遍历当前行的每一列
for j in range(sheet.Columns.Length):
cell_value = sheet.Range[i + 1, j + 1].Value
row.append(cell_value)
data_list.append(row) # 将当前行数据加入总列表
# 打印转换结果
for row in data_list:
print(row)
# 释放资源
workbook.Dispose()
输出效果:

如需将列表转回 CSV 格式,可参考:Python 将列表导出为 CSV 文件(含一维/二维/字典列表)
对于含标题行的CSV文件,转换为“字典列表”(键为标题、值为行数据)更便于数据操作。
CSV 转字典列表的 Python 代码示例:
from spire.xls import *
# 初始化工作簿并加载CSV文件
workbook = Workbook()
workbook.LoadFromFile("示例.csv", ",")
# 获取第一个工作表
sheet = workbook.Worksheets[0]
# 提取标题行(第一行数据作为字典的键)
headers = []
for j in range(sheet.Columns.Length):
headers.append(sheet.Range[1, j + 1].Value) # 1基索引取第一行
# 初始化列表用于存储字典
dict_list = []
# 遍历数据行(从第二行开始,跳过标题行)
for i in range(1, sheet.Rows.Length):
row_dict = {} # 存储当前行的键值对
for j in range(sheet.Columns.Length):
key = headers[j] # 标题作为键
value = sheet.Range[i + 1, j + 1].Value # 当前单元格值作为值
row_dict[key] = value
dict_list.append(row_dict) # 将字典加入列表
# 打印转换结果
for record in dict_list:
print(record)
# 释放资源
workbook.Dispose()
代码说明:
Workbook 类的 LoadFromFile() 方法加载文件,指定分隔符;输出效果:

处理非逗号分隔的 CSV 文件(如制表符分隔的 TSV 文件)时,只需在 LoadFromFile 中指定分隔符:
# 加载制表符分隔的文件(TSV)
workbook.LoadFromFile("data.tsv", "\t")
# 加载分号分隔的文件(常见于欧洲地区数据)
workbook.LoadFromFile("data_eu.csv", ";")
CSV 中的空单元格会被转换为空字符串('')。若需将空值替换为自定义内容(如 “N/A”),可修改单元格值提取逻辑:
# 为空值设置默认值“N/A”
cell_value = sheet.Range[i + 1, j + 1].Value or "N/A"
使用 Spire.XLS 在 Python 中将 CSV 转换为列表的方法十分高效、灵活且对初学者友好。无论您需要“列表的列表”存储原始数据,还是“字典列表”用于结构化分析,该库都能高效处理解析、索引及资源管理。通过本文示例,你可轻松将此转换集成到数据管道、分析脚本或应用程序中。
如需了解更多高级功能(如 CSV 转 Excel、批量处理等),可访问 Spire.XLS for Python 文档。
A: 是的,Spire.XLS 能高效处理大型文件。但对于超大规模数据集(数百万行),建议分块处理或结合大数据工具;对于常规业务数据,其性能表现优异。
A: Spire.XLS 提供了对解析过程更多的控制,并且不需要额外的数据科学依赖。虽然 pandas 非常适合分析,但当您需要精确控制 CSV 解析或在没有 pandas 的环境中工作时,Spire.XLS 是理想选择。
A: 推荐使用“字典列表”转换法:提取第一行作为标题(字典的键),后续行数据作为值,既能保留列含义,又便于通过列名访问数据。
A: 可通过指定目标列索引修改内循环逻辑:
# 仅转换第1列和第3列(对应索引0和2)
target_columns = [0, 2]
for i in range(sheet.Rows.Length):
row = []
for j in target_columns:
cell_value = sheet.Range[i + 1, j + 1].Value
row.append(cell_value)
data_list.append(row)
在数据处理与交换中,CSV(逗号分隔值)格式因简洁通用,成为跨应用、跨数据库的数据交换首选。对于 Python 开发者而言,将 Python 列表转换为 CSV 格式是高频需求——无论是导出应用数据、生成报表,还是准备分析数据集,都离不开这一操作。
Spire.XLS for Python 凭借直观可靠的方法简化了这一过程,无需依赖 Microsoft Excel,即可轻松将各类列表导出到 CSV 文件。本文将分步骤详解如何利用该工具实现转换,覆盖从简单一维列表到复杂字典列表的全场景。
目录
Python内置的 csv 模块可满足基础需求,但 Spire.XLS 提供了更强大的功能:
通过 pip 即可快速安装 Spire.XLS for Python,在终端或命令提示符中运行:
pip install Spire.XLS
安装完成后,即可直接导入模块开始编码。
一维列表是简单的序列值(如 ["苹果", "香蕉", "樱桃"])。 以下是将这些值写入 CSV 中的单行或单列的步骤。
步骤 1:导入 Spire.XLS 模块
首先,从 Spire.XLS 导入必要的类:
from spire.xls import *
from spire.xls.common import *
步骤2:创建工作簿与工作表
Spire.XLS 使用工作簿和工作表来组织数据。我们将创建一个新的工作簿并添加一个新的工作表:
# 初始化工作簿
workbook = Workbook()
# 清除默认工作表,新建一个工作表
workbook.Worksheets.Clear()
worksheet = workbook.Worksheets.Add("一维列表")
步骤 3:将一维列表数据写入工作表
可以选择将列表写入单行(水平)或单列(垂直)。
示例 1:将一维列表写入单行
data_list = ["苹果", "香蕉", "橙子", "葡萄", "芒果"]
# 循环写入第1行,列索引从1开始
for i, item in enumerate(data_list):
worksheet.Range[1, i+1].Value = item
示例 2:将一维列表写入单列
data_list = ["苹果", "香蕉", "橙子", "葡萄", "芒果"]
# 循环写入第1列,行索引从1开始
for i, item in enumerate(data_list):
worksheet.Range[i+1, 1].Value = item
步骤 4:将工作表保存为 CSV 文件
使用 SaveToFile() 将工作簿导出为 CSV 文件。指定 FileFormat.CSV 以确保正确的格式:
# 指定文件格式为CSV
workbook.SaveToFile("一维列表.csv", FileFormat.CSV)
# 释放资源
workbook.Dispose()
输出效果:

二维列表是“列表的列表”,适合表示表格数据(如包含表头和多行记录),每个内部列表对应 CSV 的一行。
二维列表输出为 CSV 格式的 Python 代码:
from spire.xls import *
from spire.xls.common import *
# 初始化工作簿与工作表
workbook = Workbook()
workbook.Worksheets.Clear()
worksheet = workbook.Worksheets.Add("二维列表")
# 示例二维列表(含表头和数据)
data = [
["姓名", "年龄", "城市", "员工号"],
["小张", 30, "北京", 1001],
["小王", 25, "广东", 1069],
["小李", 35, "天津", 2078],
["小孙", 28, "武汉", 2692]
]
# 双层循环写入行和列
for row_idx, row_data in enumerate(data):
for col_idx, cell_data in enumerate(row_data):
# 转换为字符串确保兼容性
worksheet.Range[row_idx+1, col_idx+1].Value = str(cell_data)
# 保存为CSV
workbook.SaveToFile("二维列表.csv", FileFormat.CSV)
workbook.Dispose()
关键说明:
输出效果:

扩展技巧:生成的 CSV 可以 转换为 PDF 用于安全展示,或转换为 JSON 用于 Web/API 数据交换。
字典列表(如 [{"姓名": "小张", "年龄": 30}, ...])适合处理带字段名的数据,字典的键作为 CSV 表头,值作为行数据。
字典列表输出为 CSV 格式的 Python 代码:
from spire.xls import *
from spire.xls.common import *
# 初始化工作簿与工作表
workbook = Workbook()
workbook.Worksheets.Clear()
worksheet = workbook.Worksheets.Add("字典列表")
# 示例字典列表
customer_list = [
{"客户ID": 101, "姓名": "小张", "邮箱": "该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。"},{"客户ID":102,"姓名":"小王","邮箱":"该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。"},{"客户ID":103,"姓名":"小孙","邮箱":"该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。"}] # 提取表头并写入第1行(若列表非空) if customer_list:headers = list(customer_list[0].keys()) # 写入表头 for col_idx,header in enumerate(headers):worksheet.Range[1,col_idx+1].Value = str(header) # 写入数据行(从第2行开始) for row_idx,record in enumerate(customer_list):for col_idx,header in enumerate(headers):# 安全获取值,缺失键时用空字符串 value = record.get(header,"") worksheet.Range[row_idx+2,col_idx+1].Value = str(value) # 保存为CSV workbook.SaveToFile("字典列表.csv",FileFormat.CSV) workbook.Dispose() 关键说明:
record.get(header,"")处理可能的缺失键;输出效果:

Spire.XLS 支持灵活设置 CSV 文件的分隔符(默认逗号)和编码,适配不同地区或系统需求。通过 Worksheet.SaveToFile()方法的参数指定:
# 分号分隔(欧洲常用),UTF-8编码 worksheet.SaveToFile("分号分隔.csv",";",Encoding.get_UTF8()) # 制表符分隔,UTF-8编码 worksheet.SaveToFile("制表符分隔.csv","\t",Encoding.get_UTF8()) # 逗号分隔,Unicode编码 worksheet.SaveToFile("Unicode编码.csv",",",Encoding.get_Unicode()) 借助 Spire.XLS for Python,无论是简单的一维列表、结构化的二维列表,还是带字段名的字典列表,都能高效导出到 CSV 文件。只需根据数据结构选择对应方法,即可确保转换准确、输出专业。更多高级功能可参考 Spire.XLS for Python 教程合集。
try-catch块捕获异常(如文件权限错误);Dispose()释放资源。通过循环遍历列表字典,逐个保存:
lists ={"水果":["苹果","香蕉","樱桃"],"分数":[85,92,78]}for name,data in lists.items():wb = Workbook() wb.Worksheets.Clear() ws = wb.Worksheets.Add(name) for i,val in enumerate(data):ws.Range[i+1,1].Value = str(val) wb.SaveToFile(f"{name}.csv",FileFormat.CSV) wb.Dispose() CSV 以文本存储数字,需提前设置格式:
# 设置A1:A10为货币格式($1,234.56) ws.Range["A1:A10"].NumberFormat = "$#,##0.00"更多格式可参考:Python 在 Excel 中设置数字格式。
全平台支持,包括 Windows、macOS 和 Linux。