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

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

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


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月前
|
Python 容器
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。
|
22天前
|
安全 网络协议 Linux
telnet在windows和linux上的使用方法
Telnet是一个简单且强大的网络工具,广泛用于远程管理和网络诊断。尽管存在安全风险,但在受控环境中,Telnet仍然是一个非常有用的工具。通过本文的介绍,您应该能够在Windows和Linux系统上安装并使用Telnet进行各种网络操作。
91 18
|
25天前
|
Python
Python学习的自我理解和想法(10)
这是我在千锋教育B站课程学习Python的第10天笔记,主要学习了函数的相关知识。内容包括函数的定义、组成、命名、参数分类(必须参数、关键字参数、默认参数、不定长参数)及调用注意事项。由于开学时间有限,记录较为简略,望谅解。通过学习,我理解了函数可以封装常用功能,简化代码并便于维护。若有不当之处,欢迎指正。
|
16天前
|
数据可视化 数据挖掘 大数据
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。
|
25天前
|
Ubuntu 网络协议 Linux
快速部署WSL(Windows Subsystem for Linux)
WSL提供了一种轻量级的方法,使开发者能够在Windows上无缝运行Linux环境。通过本文介绍的步骤,可以快速安装、配置和使用WSL,以满足开发和测试的需求。
101 8
|
1月前
|
存储 索引 Python
Python学习的自我理解和想法(6)
这是我在B站千锋教育学习Python的第6天笔记,主要学习了字典的使用方法,包括字典的基本概念、访问、修改、添加、删除元素,以及获取字典信息、遍历字典和合并字典等内容。开学后时间有限,内容较为简略,敬请谅解。
|
1月前
|
Python
Python学习的自我理解和想法(7)
学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码! 今天是学Python的第七天,学的内容是集合。开学了,时间不多,写得不多,见谅。
|
1月前
|
存储 安全 索引
Python学习的自我理解和想法(8)
这是我在B站千锋教育学习Python的第8天,主要内容是元组。元组是一种不可变的序列数据类型,用于存储一组有序的元素。本文介绍了元组的基本操作,包括创建、访问、合并、切片、遍历等,并总结了元组的主要特点,如不可变性、有序性和可作为字典的键。由于开学时间紧张,内容较为简略,望见谅。
|
1月前
|
存储 索引 Python
Python学习的自我理解和想法(4)
今天是学习Python的第四天,主要学习了列表。列表是一种可变序列类型,可以存储任意类型的元素,支持索引和切片操作,并且有丰富的内置方法。主要内容包括列表的入门、关键要点、遍历、合并、判断元素是否存在、切片、添加和删除元素等。通过这些知识点,可以更好地理解和应用列表这一强大的数据结构。
|
1月前
|
索引 Python
Python学习的自我理解和想法(5)
这是我在B站千锋教育学习Python的第五天笔记,主要内容包括列表的操作,如排序(`sort()`、``sorted()``)、翻转(`reverse()`)、获取长度(`len()`)、最大最小值(`max()`、``min()``)、索引(`index()`)、嵌套列表和列表生成(`range`、列表生成式)。通过这些操作,可以更高效地处理数据。希望对大家有所帮助!

热门文章

最新文章