Python实现DOC、TXT及XLS文档读写操作详解
本文详细介绍如何使用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文档读写操作及神经网络数据准备的相关内容,建议搜索本站历史文章或继续浏览下方的相关文章。希望对大家有所帮助,并期待未来能获得更多支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









