用 Python 自动化办公能做到哪些有趣或有用的事情?

通过Python实现一键VlookUp功能,整合多个Excel表格数据,自动计算并处理结果,打造GUI工具减轻税务公务员的统计负担。此外,还分享了其他自动化应用,如Windows操作、文件管理、文本处理、二维码识别等,提供自动化办公的实用案例。
摘要由CSDN通过智能技术生成

有一个女同学是税务公务员,每个月需要统计大量的表,枯燥乏味。每次想请她吃饭都是说加班统计表。于是我就用Python一键实现了VlookUp功能

将多个表比如data.xls,海关.xls,机动车.xls,认证.xls 等等的数据比对放入总表中,然后将总表中的某些列以一定计算规则计算到一个总数列,最后对总数列中的数据再进行处理。 以gui的形式打包,只需要选择放入文件的文件夹,点击一键转换即可。

界面上我还特意加了一个输入框作为彩蛋,只要输入某个数字就会有特定的惊喜! 两年过去了,她孩子都有了,我现在只希望那个彩蛋永远别触发了...

上面的代码就 不分享了,因为不具备适用性。分享几个写过的其他自动化例子

windows快速重新

import os

os.system('shutdown -R -T 0')

windows快速关机

import os

os.system('shutdown -s -t 0')

批量给某个文件夹所有文件加前缀

import os

# 文件夹路径:
folder_path = "/home/chen/Documents/ex2tron-wang/LeetCode-Python3/"
# 要在开头添加的文本:
append_str = "# ex2tron's blog:\n# http://codec.wang"

for file in os.listdir(folder_path):
    with open(os.path.join(folder_path, file), 'r+') as f:
        content = f.read()
        f.seek(0, 0)
        f.write(append_str+"\n\n"+content)

print('已修改所有的文件')

批量给文件夹下的所有文本类的文件开头加一句话

import os

# 文件夹路径:
folder_path = "/home/chen/Documents/ex2tron-wang/LeetCode-Python3/"
# 要在开头添加的文本:
append_str = "# ex2tron's blog:\n# http://codec.wang"
# 要修改特定文件的后缀名:
postfix = '.py'

for file in os.listdir(folder_path):
    if os.path.splitext(file)[1] == postfix:
        with open(os.path.join(folder_path, file), 'r+') as f:
            content = f.read()
            f.seek(0, 0)
            f.write(append_str+"\n\n"+content)

print('已修改所有的%s文件' % postfix)

提取文本中的电话和邮箱

import re
import pyperclip

# 中国手机号码正则匹配
phone_regex = re.compile(r'((\d{3})(\s|-|\.)?(\d{4})(\s|-|\.)?(\d{4}))')
# 邮箱地址正则匹配
email_regex = re.compile(
    r'([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+(\.[a-zA-Z]{2,4}))')

text = pyperclip.paste()
print('匹配到的所有电话号码为:')
for group in phone_regex.findall(text):
    print(group[0])

print('匹配到的所有邮箱地址为:')
for group in email_regex.findall(text):
    print(group[0])

# 测试文本
# 我叫ex2tron,电话号码是188-8888-6666,邮箱是:ex2tron@outlook.com,另一个邮箱是:ex2tron@foxmail.com

批量重命名文件

import os
import shutil

path1 = 'dir1/'
path2 = 'dir2/'

if not os.path.exists(path2):
    os.mkdir(path2)

for file in os.listdir(path1):
    old_dir = os.path.join(path1, file)
    filename, filetype = os.path.splitext(file)

    new_dir = os.path.join(path2, str(int(filename)+199)+filetype)
    # os.rename(old_dir, new_dir)
    # shutil.move(old_dir, new_dir)
    # 上面两种方式都会移动删除掉源文件
    shutil.copy(old_dir, new_dir)

识别剪切板中的二维码内容

from PIL import ImageGrab
from pyzbar.pyzbar import decode
import pyperclip

# 1. 从剪贴板中获取图片
img = ImageGrab.grabclipboard()
if img:
    try:
        # 2. 解码
        qrcode = str(decode(img)[0].data)
        # 3. 复制到剪贴板
        # pyperclip.copy(str(qrcode))
        print(qrcode)
        # 4. 显示图片
        # img.show()
    except:
        print('No QRCode Found.')
else:
    print('No Image Here.')

获取windows用户文件的位置

import winreg


def get_user_path():
    # 用户文件夹的地址可以在下面这个注册表中查找
    key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,
                         "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders")
    print('桌面', winreg.QueryValueEx(key, 'Desktop')[0])
    print('文档', winreg.QueryValueEx(key, 'Personal')[0])
    print('音乐', winreg.QueryValueEx(key, 'My Music')[0])
    print('图片', winreg.QueryValueEx(key, 'My Pictures')[0])
    print('视频', winreg.QueryValueEx(key, 'My Video')[0])
    print('下载', winreg.QueryValueEx(
        key, '{374DE290-123F-4565-9164-39C4925E467B}')[0])


get_user_path()

还有一些针对特定场景写过一些脚本这里就不分享啦..

对了,再给大家分享一些关于自动化的视频资料:

链接:https://pan.baidu.com/s/1eKivANdIix2ld5JcqFBpbw

提取码:czeu

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值