Python————办公自动化

本文介绍了如何使用Python进行办公自动化,包括读写纯文本、CSV、Excel(xlrd/xlwt/openpyxl)、Word(python-docx)和PDF(PyPDF2)文件的操作。重点展示了Python如何通过三方库简化重复性任务,提升工作效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python————办公自动化


背景: 随着日常的工作量逐渐变大,基本很多都是重复性的工作。虽然现在有很大办公软件能够在一些方面提高工作效率,但无法解决重复性的工作。这时就需要一种能够重复利用的工具,解决这类办法编程是一种很好的选择。在python这门编程语言提供了很多三方库来支持办公自动化操作。

文件的读写步骤:

打开文件——>读/写文件————关闭文件释放资源

文件的相对路径:指相对于当前工作区的路径

文件的绝对路径:指文件从根目录一个完整的路径

1. 纯文本文件的读写

  • 对于纯文本文件的操作主要操作的是.txt为扩展名的文件。这种文件只能够是字符,不能够插入图片、链接、音频等。

    读文件

    # 打开文件
    file = open('resources/致橡树.txt', encoding='utf-8')
    # 读取文件
    read = file.read()
    print(read)  # 打印文件
    # 释放资源
    file.close()
    
  • 防止读文件出错未释放资源

    try:
        # 打开文件
        file = open('resources/致橡树.txt', encoding='utf-8')
        # 读取文件
        read = file.read()
        print(read)  # 打印文件
        # 释放资源
    finally:
        file.close()
    
  • 自动释放资源

with open('resources/致橡树.txt', 'r', encoding='utf-8') as file:   # enconding:设置编码方式,不符合原文编码会出现解码错误
    read = file.readline() # 每次读取一行
    while read:				# 读到空行时结束
        print(read, end='')   # 每行文本末尾自带换行符,不需在换行
        read = file.readline()

写文件

 mode='r'  # 读文件 
 mode='rb' # 读二进制文件
 mode='w'  # 写文件,会把源文件进行覆盖
 mode='wr' # 写二进制文件
 mode='a'  # 追加
with open('resources/小雨康桥的寺.txt', 'w', encoding='utf-8') as file:
    file.write('好好学习')
    file.write('\n天天向上')

2. CSV文件的读写

  • csv文件叫逗号分隔值文件,指一种以逗号作为分隔符的文件。它也是一种纯文本文件,常用于数据的存储。但如果以其它符号作为文本文件的分隔符也是可以的。
  • 在python种提供了一个csv模块来支持csv文件的读写操作

读csv文件

import csv

with open('resources/小雨康桥的寺.txt', 'r', encoding='utf-8') as file:
    reader = csv.reader(file)  # 返回一个可迭代对象
    for text in reader:
        print(text)  # 返回一个列表
""" ['好好学习']
    ['天天向上']
"""

写csv文件

import csv

# newline='',写入不换行
with open('resources/小雨康桥的寺.txt', 'w', encoding='utf-8', newline='') as file:    
    writer = csv.writer(file)
    writer.writerow([1, 2, 3])  # 按行写入,参数是一个可迭代对象,常用列表、元组
    writer.writerows([[4, 5, 6], [7, 8, 9]])  # 一次性写入多行
    
"""
1,2,3
4,5,6
7,8,9
"""

3. Excel文件的读写

  • Excel文件的读写需要用到三方库

  • xlrd :读Excel 文件

  • xlwt:写Excel 文件

  • openpyxl:支持同时读取Excel文件

  • Excel文件包括两种以.xls/.xlsx为后缀名的文件,目前主要以.xlsx 为后缀名的文件

读excel文件

  • 读exvcel文件 的步骤:打开工作簿(可以有很多工作表)-——>获取工作表————>获取每一个工作表单位里的值

    xlrd模块读excel文件

"""现在的xlrd以不在支持以.xlsx为后缀名的读操作。可以在安装的时候指定版本安装。pip install xlrd=1.2.0"""
import xlrd

wb = xlrd.open_workbook('data/四班成绩.xlsx')  # 创建一个workbook对象
print(wb.sheet_names())  # 获取工作表单名
sheet = wb.sheet_by_name(wb.sheet_names()[1])  # 得到工作表对象
print(sheet.nrows, sheet.ncols)  # 获取工作表的行数和列数

for row in range(sheet.nrows):
    for col in range(sheet.ncols):
        value = sheet.cell(row, col).value  # 从单元格对象中获取每个单元格的值
        print(value, end='\t')
    print()  # 打印完一行实在换行。
  • openpyxl读Excel文件
import openpyxl

wb = openpyxl.load_workbook('data/四班成绩.xlsx')  # 加载文件
sheet = wb.worksheets[1]
for row in range(1, sheet.max_row):  # 索引位置从1开始
    for col in range(1, sheet.max_column):
        value = sheet.cell(row, col).value
        print(value, end='\t')
    print()

xlwt写excel文件

import xlwt
wb = xlwt.Workbook()
"""当出现没有代码提示可以使用,# type: 对象类型"""
sheet = wb.add_sheet('测试')   # type: xlwt.Worksheet    
# def write(self, r, c, label="", style=Style.default_style):
sheet.write(0, 0, '学号')
sheet.write(0, 1, '姓名')
sheet.write(0, 2, '联系方式')
wb.save('data/测试.xlsx')

openpyxl写Excel文件

import openpyxl

wb = openpyxl.Workbook()
# sheet = wb.create_sheet('班级名单')  # 创建一个工作表
sheet = wb.active  # 获取当前是sheet
sheet.title = '班级名单'
sheet.cell(1, 1, '姓名')  # 读写都用sheet.cell(),传入参数只有row和col表示读,有row col value表示写操作
sheet.cell(1, 2, '学号')  # 行列索引从1开始
  • 简单小结:但遇到.xls文件用xlrd xlwt进行读写操作,.xlsx文件用openoyxl进行读写操作。对于文件既要读又要写的操作用openpyxl

4. Word文件的读写

  • Word文件也是日常生活中使用非常平凡的文件之一。以.DOC和.DOCX`为后缀名的文件。
  • 用python-DOCX操作Word文件
from docx import Document
from docx.shared import Inches, Pt
from docx.document import Document as Doc

# 创建一个document对象
document = Document()  # type: Doc

document.add_heading('无聊的只剩下写代码', 0)  # 标题

p = document.add_paragraph('A plain paragraph having some ')  # 段落
p.add_run('bold').bold = True  # 添加‘bold’并加粗
p.add_run(' and some ')    
p.add_run('italic.').italic = True  # 添加‘italic’并加粗

document.add_heading('Heading, level 1', level=1)   # 添加一级标题
document.add_paragraph('Intense quote', style='Intense Quote')   # 添加段落并附上样式

document.add_paragraph(
    'first item in unordered list', style='List Bullet'
)
document.add_paragraph(
    'first item in ordered list', style='List Number'
)

document.add_picture('resources/7.jpg', width=Inches(1.25))

records = (
    (3, '101', 'Spam'),
    (7, '422', 'Eggs'),
    (4, '631', 'Spam, spam, eggs, and spam')
)

table = document.add_table(rows=1, cols=3)  # 创建表格
hdr_cells = table.rows[0].cells
hdr_cells[0].text = '姓名'
hdr_cells[1].text = '学号'
hdr_cells[2].text = '班级'
for qty, id, desc in records:
    row_cells = table.add_row().cells
    row_cells[0].text = str(qty)
    row_cells[1].text = id
    row_cells[2].text = desc

document.add_section()  # 添加分节符
p = document.add_paragraph('明天会更好!')
document.add_page_break()  # 添加分页符
document.save('demo.docx')
  • Word文件的操作可以节约大量的重复的工作,对模板的操作比较快。只需要设置相应的变量替换原来的值即可。

5. PDF文件的读写

  • 当下载一个PDF文件是无法编辑只能给你阅读,一般想要修改又还要需要转换为Word.才能进行修改。
  • python有一个叫做PyPDF2

将一个PDF文件的内容写入另一个PDF文件中并加密

import PyPDF2


reader = PyPDF2.PdfFileReader(path)
writer = PyPDF2.PdfFileWriter()
for page_num in range(reader.numPages):  # 获取每一页的内容
    writer.addPage(reader.getPage(page_num))  # 将一个PDF文件的页面内容写入到另一个文件中
   
writer.encrypt('332335')  # 加密
with open(file_name, 'wb') as file:
    writer.write(file)  

简单总结

python对于办公自动化一个非常号的好给工具,主要得益于后面有三方库的支持。办公自动化为日常的工作节约了大量的时间,不要把时间让费到重复的工作上去。对于Excel文件的处理办公自动化更能表现出强大的优势,效率也比较高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值