Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)

简介: Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)



Windows中定时任务

定时任务最主要的功能 ,就是帮助我们在指定的时间运行某个程序或者脚本。比如:

1、定期发送邮件

2、定期统计工资情况

3、定期汇总文件

4、定期清理文件

Windows进入定时任务的方法为: 右键“此电脑”-----> 管理 -----> 系统工具 -----> 任务计划程序

快捷键

Windows 键+R,调出"运行窗口",输入 compmgmt.msc

OS/linux 系统定时任务

crontab

1、-e 编辑工作表

2、-l 列出工作表里的命令

3、-r 删除工作表

crontab 的命令构成为 时间+动作,其时间有分、时、日、月、周 五种,操作符有

1、取值范围内的所有数字

2、/ 每过多少个数字

3、- 从 X 到 Z

4、散列数字

注意

crontab 新增了任务后,重启下服务,命令如下: /etc/init.d/cron restart

案例

实例 1:每 1 分钟执行一次 myCommand

\* * * * * myCommand  

实例 2:每小时的第 3 和第 15 分钟执行

3,15 * * * * myCommand  

实例 3:在上午 8 点到 11 点的第 3 和第 15 分钟执行

3,15 8-11 * * * myCommand  

实例 4:每隔两天的上午 8 点到 11 点的第 3 和第 15 分钟执行

3,15 8-11 */2 * * myCommand

实例 5:每周一上午 8 点到 11 点的第 3 和第 15 分钟执行

3,15 8-11 * * 1 myCommand

实例 6:每晚的 21:30 重启 smb

30 21 * * * /etc/init.d/smb restart

实例 7:每月 1、10、22 日的 4 : 45 重启 smb

45 4 1,10,22 * * /etc/init.d/smb restart

实例 8:每周六、周日的 1 : 10 重启 smb

10 1 * * 6,0 /etc/init.d/smb restart

实例 9:每天 18 : 00 至 23 : 00 之间每隔 30 分钟重启 smb

0,30 18-23 * * * /etc/init.d/smb restart

实例 10:每星期六的晚上 11 : 00 pm 重启 smb

0 23 * * 6 /etc/init.d/smb restart

实例 11:每一小时重启 smb

\* */1 * * * /etc/init.d/smb restart

实例 12:晚上 11 点到早上 7 点之间,每隔一小时重启 smb

\* 23-7/1 * * * /etc/init.d/smb restart

Python 钉钉发送消息

创建钉钉机器人

安装

pip install dingtalkchatbot

常用方法与属性

函数名&属性 含义
dingtalkchatbot.chatbot.DingtalkChatbot  创建机器人
chatbot.send_text()  发送消息
chatbot.send_image()  发送图片
chatbot.send_link() 发送链接
chatbot.send_markdown() 发送Markdown文档

代码

from dingtalkchatbot.chatbot import DingtalkChatbot
def send_text():
 # 创建一个机器人
  webhook = 'https://oapi.dingtalk.com/robot/send?access_token=5a6e68c7a3c146c4b37126cbd434ffaf6b11bc7763ac91136130a38dbd25ae83'
  secret = 'SEC63299e56a96cb2a24b9b67834bc9df3498963f101e9800a9fa7bdc76c3240228'
  bot = DingtalkChatbot(webhook,secret)
  # 发送消息
  # bot.send_text('大家好~我是小童小助手~')
  # bot.send_text('大家该交作业啦~')
  # bot.send_text('要开会啦~',is_at_all=True)
  bot.send_text('你之前问题搞定了没有?',at_mobiles=[1668888888])
if __name__ =='__main__':
  send_text()

Python 钉钉发送图片

常用方法与属性

函数名&属性  含义
dingtalkchatbot.chatbot.DingtalkChatbot 创建机器人
chatbot.send_image() 发送图片

代码

from dingtalkchatbot.chatbot import DingtalkChatbot
def send_img():
  webhook = 'https://oapi.dingtalk.com/robot/send?access_token=5a6e68c7a3c146c4b37126cbd434ffaf6b11bc7763ac91136130a38dbd25ae83'
  secret = 'SEC63299e56a96cb2a24b9b67834bc9df3498963f101e9800a9fa7bdc76c3240228'
  # 创建机器人
  bot = DingtalkChatbot(webhook,secret)
  # 发送图片消息
 bot.send_image('https://www.itbaizhan.com/public/new/index/images/courimg2.jpg')
if __name__ =='__main__':
  send_img()

Python钉钉发送链接与MarkDown

常用方法与属性

函数名&属性  含义
dingtalkchatbot.chatbot.DingtalkChatbot 创建机器人
chatbot.send_link()  发送链接
chatbot.send_markdown()  发送Markdown文档

代码

from dingtalkchatbot.chatbot import DingtalkChatbot
def send_link():
  webhook = 'https://oapi.dingtalk.com/robot/send?access_token=5a6e68c7a3c146c4b37126cbd434ffaf6b11bc7763ac91136130a38dbd25ae83'
  secret = 'SEC63299e56a96cb2a24b9b67834bc9df3498963f101e9800a9fa7bdc76c3240228'
  # 创建机器器
 chart_bot = DingtalkChatbot(webhook,secret)
  # 发送链接
  chart_bot.send_link(
    title='Python自动化课程',
    text='欢迎学习Python课程',
  message_url='http://www.baidu.cn',
 pic_url='https://www.baidu.com/public/new/index/images/courimg3.jpg')
def send_markdown():
  webhook = 'https://oapi.dingtalk.com/robot/send?access_token=5a6e68c7a3c146c4b37126cbd434ffaf6b11bc7763ac91136130a38dbd25ae83'
  secret = 'SEC63299e56a96cb2a24b9b67834bc9df3498963f101e9800a9fa7bdc76c3240228'
  # 创建机器器
  chart_bot = DingtalkChatbot(webhook,secret)
  # 发送markdown
  chart_bot.send_markdown(
    title='Python自动化课程',
    text='### 欢迎学习Python课程\n'
    '此课程我们安排了word、excle、ptt 等.....'
    '![Python] (https://www.baidu.com/public/new/index/images/couimg1.jpg)' )
if __name__ =='__main__':
  # send_link()
  send_markdown()

Python钉钉发送卡片消息

常用方法与属性

函数名&属性 含义
dingtalkchatbot.chatbot.DingtalkChatbot  创建机器人
dingtalkchatbot.chatbot.CardItem(title,url,pic_url)  卡片消息对象
chatbot.send_feed_card()  发送卡片消息

代码

from dingtalkchatbot.chatbot import DingtalkChatbot
from dingtalkchatbot.chatbot import CardItem
def send_card():
  webhook = 'https://oapi.dingtalk.com/robot/send?
access_token=5a6e68c7a3c146c4b37126cbd434ffaf6b11bc7763ac91136130a38dbd25ae83'
  secret = 'SEC63299e56a96cb2a24b9b67834bc9df3498963f101e9800a9fa7bdc76c3240228'
  # 创建机器人
  chat_bot = DingtalkChatbot(webhook,secret)
  # 创建卡片对象
  card1 = CardItem(title='氧眼美女',url='http://www.baidu.cn',pic_url='https://pic.netbian.com/uploads/allimg/220511/003034-16522002340d03.jpg')
  card2 = CardItem(title='氧眼风景',url='http://www.baidu.cn',pic_url='https://pic.netbian.com/uploads/allimg/180826/113958-1535254798fc1c.jpg')
  card3 = CardItem(title='氧眼漫画',url='http://www.baidu.cn',pic_url='https://pic.netbian.com/uploads/allimg/210831/102129-16303764895142.jpg')
  # 发送卡片消息
 chat_bot.send_feed_card([card1,card2,card3]
)
if __name__ =='__main__':
  send_card()

Python钉钉发送互动卡片消息

常用方法与属性

函数名&属性 含义
dingtalkchatbot.chatbot.DingtalkChatbot  创建机器人
dingtalkchatbot.chatbot.ActionCard(title,text,btns)  互动类型卡片消息对象
dingtalkchatbot.chatbot.CardItem(title,url)  卡片消息对象
chatbot.send_action_card()  发送互动卡片消息

代码

from dingtalkchatbot.chatbot import DingtalkChatbot,CardItem
from dingtalkchatbot.chatbot import ActionCard
def send_card():
  webhook = 'https://oapi.dingtalk.com/robot/send?access_token=5a6e68c7a3c146c4b37126cbd434ffaf6b11bc7763ac91136130a38dbd25ae83'
  secret = 'SEC63299e56a96cb2a24b9b67834bc9df3498963f101e9800a9fa7bdc76c3240228'
  # 创建机器人
  chat_bot = DingtalkChatbot(webhook,secret)
  # 创建一个选项
  card1 = CardItem(title='查看详情',url='http://www.baidu.cn')
  # 创建互动卡片对象
  action_card = ActionCard(
    title='万万没想到,竟然...',
    text='![选择] (https://pic.netbian.com/uploads/allimg/210317/001935-16159115757f04.jpg) \n### 故事是这样子的...',
    btns=(card1,),
    btn_orientation = 1,   # 只有2个按钮的时候好用
    hide_avatar=1
 )
  # 发送卡片消息
  chat_bot.send_action_card(action_card)
def send_card2():
  webhook = 'https://oapi.dingtalk.com/robot/send?access_token=5a6e68c7a3c146c4b37126cbd434ffaf6b11bc7763ac91136130a38dbd25ae83'
  secret = 'SEC63299e56a96cb2a24b9b67834bc9df3498963f101e9800a9fa7bdc76c3240228'
  # 创建机器人
  chat_bot = DingtalkChatbot(webhook,secret)
  # 创建一个选项
  card1 = CardItem(title='支持',url='http://www.baidu.cn')
  card2 = CardItem(title='反对',url='http://www.baidu.cn')
  # 创建互动卡片对象
  action_card = ActionCard(
    title='万万没想到,竟然...',
    text='![选择] (https://pic.netbian.com/uploads/allimg/210317/001935-16159115757f04.jpg) \n### 故事是这样子的...',
    btns=(card1,card2),
    btn_orientation = 1,   # 只有2个按钮的时候好用
    hide_avatar=1
 )
  # 发送卡片消息
  chat_bot.send_action_card(action_card)
def send_card3():
   webhook = 'https://oapi.dingtalk.com/robot/send?access_token=5a6e68c7a3c146c4b37126cbd434ffaf6b11bc7763ac91136130a38dbd25ae83'
  secret = 'SEC63299e56a96cb2a24b9b67834bc9df3498963f101e9800a9fa7bdc76c3240228'
  # 创建机器人
  chat_bot = DingtalkChatbot(webhook,secret)
  # 创建一个选项
  card1 = CardItem(title='支持',url='http://www.baidu.cn')
  card2 = CardItem(title='弃票',url='http://www.baidu.cn')
  card3 = CardItem(title='反对',url='http://www.baidu.cn')
  # 创建互动卡片对象
  action_card = ActionCard(
    title='万万没想到,竟然...',
    text='![选择] (https://pic.netbian.com/uploads/allimg/190824/212516-1566653116f355.jpg) \n### 故事是这样子的...',
    btns=(card1,card2,card3),
    btn_orientation = 1,  # 只有2个按钮的时候好用
    hide_avatar=1 )
  # 发送卡片消息
  chat_bot.send_action_card(action_card)
if __name__ =='__main__':
  # send_card()
  # send_card2()
  send_card3()

操作压缩文件 - ZipFile

常用方法与属性

函数名&属性 含义
ZipFile(file,model)  打开压缩文件,w压缩,r解压,a追加
zipFile.write(file)  增加要压缩的文件
zipFile.namelist()  显示压缩包的文件
zipFile.extractall() 解压所有文件

代码

from zipfile import ZipFile
def zip_in():
  # 创建压缩文件
  with
ZipFile('./create_data/12_zip_in.zip','w')
as f:
    # 增加压缩文件
    f.write('./06_task.py')
    f.write('./05_zmail的使用.py')
def zip_out():
 # 打开压缩文件
  with
ZipFile('./create_data/12_zip_in.zip','r')
as f:
    # 读取数据
    print(f.namelist())
    # 解压数据
    f.extractall('./create_data')
if __name__ =='__main__':
  # zip_in()
  zip_out()

Python压缩文件工具开发

需求:给一个指定路径,将其制做成压缩文件

1、路径为文件,直接压缩

2、路径为文件夹,遍历文件夹文件压缩

import os
from zipfile import ZipFile
def new_file(base_path,zip_path):
  # 创建一个压缩文件
  with ZipFile(zip_path,'w') as zip:
    # 通过os.path.isfile() 判断是否是文件
    if os.path.isfile(base_path):
      zip.write(base_path) 
    else:
      # 遍历文件夹
      for root,dirs,files in os.walk(base_path):
        # root 遍历的当前文件夹名称
        # dirs 当前路径包含的文件夹
       # files 当前路径包含的文件
        for f in files:
 zip.write(os.path.join(root,f))
# 在压缩包追加新文件
def add_file(base_path,zip_path):
  # 创建一个压缩文件
  with ZipFile(zip_path,'a') as zip:
    # 通过os.path.isfile() 判断是否是文件
    if os.path.isfile(base_path):
      zip.write(base_path) 
    else:
      # 遍历文件夹
      for root,dirs,files in os.walk(base_path):
        # root 遍历的当前文件夹名称
        # dirs 当前路径包含的文件夹
        # files 当前路径包含的文件
        for f in files:
 zip.write(os.path.join(root,f))
if __name__ =='__main__':
  add_file('05_zmail的使用.py','./create_data/13_压缩工具.zip')

操作压缩文件 - tarfile

常用方法与属性

函数名&属性  含义
tarfile.open(path,model)  打开/创建压缩的文件,model: 'w'写,'r'读,'a'追加
tar.add(path) 增加压缩文件
tar.getmembers()  显示所有的文件信息
tar.extractall()  解压所有文件

代码

import tarfile
def tar_in():
  # 创建压缩文件
  with
tarfile.open('./create_data/14_tarfile.tar','w') as tar:
    # 增加压缩文件
    tar.add('11_发送钉钉互动卡片消息.py')
    tar.add('10_发送钉钉卡片消息.py')
def tar_out():
  # 打开压缩文件
  with
tarfile.open('./create_data/14_tarfile.tar','r') as tar:
    # 获取压缩包里的数据
    # print(tar.getmembers())
    # 解压压缩文件
    tar.extractall('./create_data')
if __name__=='__main__':
  # tar_in()
  tar_out()

暴力破解压缩密码

代码

from zipfile import ZipFile
import os
def passwd(path,pwd):
  type_ = os.path.splitext(path)[-1][1:]
  if type_ == 'zip':
    with ZipFile(path,'r') as zip:
      print(f'正在尝试密码: {pwd}')
      try:
       zip.extractall('./create_data/生成压缩文件',pwd=str(pwd).encode('utf-8'))
        print(f'解压成功,密码是:{pwd}')
        return True
      except Exception as e:
        pass
def create_pwd(length):
  import itertools as its
  words='1234567890asd'
  for i in range(1,length):
    base = its.product(words,repeat=i)
    for i in base:
      yield ''.join(i)
if __name__ == "__main__":
  # passwd('./base_data/aa.zip')
  for p in create_pwd(5):
    flag = passwd('./base_data/aa.zip',p)
    if flag:
      break
目录
相关文章
|
1月前
|
安全 搜索推荐 Android开发
移动应用与系统:探索开发趋势与操作系统优化策略####
当今数字化时代,移动应用已成为日常生活不可或缺的一部分,而移动操作系统则是支撑这些应用运行的基石。本文旨在探讨当前移动应用开发的最新趋势,分析主流移动操作系统的特点及优化策略,为开发者提供有价值的参考。通过深入剖析技术创新、市场动态与用户需求变化,本文力求揭示移动应用与系统协同发展的内在逻辑,助力行业持续进步。 ####
47 9
|
1月前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
59 0
Vanilla OS:下一代安全 Linux 发行版
|
1月前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
15天前
|
Python Windows
Python实现常用办公文件格式转换
本文介绍了如何使用Python及其相关库(如`pandas`、`openpyxl`、`python-docx`等)实现办公文件格式间的转换,包括XLS转XLSX、DOC转DOCX、PPT转PPTX、Word转PDF及PDF转Word,并提供了具体代码示例和注意事项。
145 89
|
2天前
|
JSON iOS开发 数据格式
tauri2-vue3-macos首创跨平台桌面OS系统模板
自研Tauri2.0+Vite6+Pinia2+Arco-Design+Echarts+sortablejs桌面端OS管理平台系统。提供macos和windows两种桌面风格模式、自研拖拽式栅格引擎、封装tauri2多窗口管理。
27 3
|
20天前
|
安全 前端开发 Android开发
探索移动应用与系统:从开发到操作系统的深度解析
在数字化时代的浪潮中,移动应用和操作系统成为了我们日常生活的重要组成部分。本文将深入探讨移动应用的开发流程、关键技术和最佳实践,同时分析移动操作系统的核心功能、架构和安全性。通过实际案例和代码示例,我们将揭示如何构建高效、安全且用户友好的移动应用,并理解不同操作系统之间的差异及其对应用开发的影响。无论你是开发者还是对移动技术感兴趣的读者,这篇文章都将为你提供宝贵的见解和知识。
|
21天前
|
人工智能 搜索推荐 Android开发
移动应用与系统:探索开发趋势与操作系统演进####
本文深入剖析了移动应用开发的最新趋势与移动操作系统的演进历程,揭示了技术创新如何不断推动移动互联网生态的变革。通过对比分析不同操作系统的特性及其对应用开发的影响,本文旨在为开发者提供洞察未来技术方向的视角,同时探讨在多样化操作系统环境中实现高效开发的策略。 ####
19 0
|
1月前
|
测试技术 Android开发 开发者
移动应用与系统:涵盖移动应用开发、移动操作系统等相关话题####
本文深入探讨了移动应用开发的全过程,包括需求分析、设计、编码、测试以及发布等关键步骤。同时,还对当前主流的移动操作系统进行了简要介绍,并分析了它们之间的差异和各自的优势。通过实际案例,展示了移动应用开发的挑战与解决方案,旨在为读者提供一份全面的移动应用开发指南。 ####
|
1月前
|
人工智能 Android开发 数据安全/隐私保护
移动应用与系统:探索现代移动应用开发及操作系统的演变与未来趋势###
本文旨在深入探讨现代移动应用开发及移动操作系统的演变历程,并分析其未来的发展趋势。通过梳理移动应用从早期的简单工具到如今的多功能平台的转变过程,以及主流移动操作系统如iOS和Android的发展路径,本文揭示了技术创新如何不断推动移动生态系统的进步。此外,文章还讨论了当前面临的挑战及潜在的解决方案,为开发者和研究人员提供有价值的参考。 ###
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
64 4