Python实现DOC、TXT及XLS文档读写操作详解

周叙
周叙
发布时间:2026-10-15 | 3人浏览过
原创

本文详细介绍如何使用Python对DOC、TXT和XLS三种常见文档格式进行读写操作。通过引入docx、xlrd等第三方库,分别演示了从Word文档中提取段落文本、逐行读取并解析TXT数据文件,以及打开并遍历Excel工作表内容的具体代码实现。文章提供了完整的函数定义与调用示例,帮助开发者快速掌握多格式文档的数据获取技巧,适用于数据预处理及自动化办公场景。

在Python中处理DOC文档主要依赖于库。首先,需要导入该库并创建文档对象,指定文件路径。例如,使用docx.Document("path")获取文档实例后,可以通过file.paragraphs属性获取所有段落列表。代码中展示了如何统计段落总数,即len(file.paragraphs),并遍历输出每一段的具体文本内容。此外,还可以通过索引方式(如file.paragraphs[i].text)结合循环打印段落编号及其对应的内容,从而实现对Word文档文本信息的完整提取。

#读取docx中的文本代码示例
import docx
#获取文档对象
file=docx.Document("path")
print("段落数:"+str(len(file.paragraphs)))#段落数为13,每个回车隔离一段
​
#输出每一段的内容
for para in file.paragraphs:
    print(para.text)
​
#输出段落编号及段落内容
for i in range(len(file.paragraphs)):
    print("第"+str(i)+"段的内容是:"+file.paragraphs[i].text)

针对TXT文档的读取,通常采用内置的open函数以只读模式('r')打开文件。如所示,代码示例中定义了文件名'tangqing.txt',并初始化了用于存储位置和电场数据的列表pos和Efield。通过while循环配合file_to_read.readline()逐行读取数据,当读取到空行时终止循环。对于每一行有效数据,使用split()方法按空格分割字符串,并将分割后的元素转换为浮点数列表p_tmp。随后,利用np.array()将列表转换为数组类型并打印输出,以此完成对TXT文件中数值数据的解析与提取。


filename = 'tangqing.txt' # txt文件和当前脚本在同一目录下,所以不用写具体路径
pos = []
Efield = []
with open(filename, 'r') as file_to_read:
  while True:
    lines = file_to_read.readline() # 整行读取数据
    if not lines:
      break
    p_tmp= [float(i) for i in lines.split()] # 将整行数据分割处理,如果分割符是空格,括号里就不用传入参数,如果是逗号, 则传入‘,'字符。
    pos = np.array(p_tmp) # 将数据从list类型转换为array类型。
    print(pos)

处理XLS表格文件时,需使用库。代码首先定义了一个open_excel函数,尝试通过xlrd.open_workbook(file)打开指定路径的Excel文件,若发生异常则打印错误信息。接着,定义excel_table_byindex函数,该函数接收文件路径、表头列索引(colnameindex)及工作表索引(by_index)作为参数。函数内部获取工作表对象后,通过table.nrows和table.ncols分别获取行数和列数,并利用table.row_values(colnameindex)获取表头数据。随后遍历从第1行开始的每一行数据,将每行数据与表头键值对应,构建字典app并加入列表list中,最终返回包含所有数据记录的列表。此外,代码还展示了根据名称获取表格数据的类似逻辑及主函数调用方式。

import  xdrlib ,sys
import xlrd
def open_excel(file= 'path'):
    try:
        data = xlrd.open_workbook(file)
        return data
    except Exception as e:
        print(str(e))
​
#根据索引获取Excel表格中的数据   参数:file:Excel文件路径     colnameindex:表头列名所在行的索引  ,by_index:表的索引
def excel_table_byindex(file= 'path/xxx.xls',colnameindex=0,by_index=0):
    data = open_excel(file)
    table = data.sheets()[by_index]
    nrows = table.nrows #行数
    ncols = table.ncols #列数
    colnames =  table.row_values(colnameindex) #某一行数据 
    list =[]
    for rownum in range(1,nrows):
         row = table.row_values(rownum)
         if row:
             app = {}
             for i in range(len(colnames)):
                app[colnames[i]] = row[i] 
             list.append(app)
    return list
​
#根据名称获取Excel表格中的数据   参数:file:Excel文件路径     colnameindex:表头列名所在行的所以  ,by_name:Sheet1名称
def excel_table_byname(file= 'E:\\个人文件\\6-desktop\\丰沙点表-配电所.xls',colnameindex=0,by_name=u'电度'):
    data = open_excel(file)
    table = data.sheet_by_name(by_name)
    nrows = table.nrows #行数 
    colnames =  table.row_values(colnameindex) #某一行数据 
    list =[]
    for rownum in range(1,nrows):
         row = table.row_values(rownum)
         if row:
             app = {}
             for i in range(len(colnames)):
                app[colnames[i]] = row[i]
             list.append(app)
    return list
​
def main():
   tables = excel_table_byindex()
   for row in tables:
       print(row)
           
​
   tables = excel_table_byname()
   for row in tables:
       print(row)
           
​
if __name__=="__main__":
    main()

至此,关于Python实现DOC、TXT及XLS文档读写操作的详细介绍已完成。更多涉及Python文档读写操作及神经网络数据准备的相关内容,建议搜索本站历史文章或继续浏览下方的相关文章。希望对大家有所帮助,并期待未来能获得更多支持!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表