Python3如何实现Win10桌面自动切换


Posted in Python onAugust 11, 2020

得空写了个自动切换桌面背景图片的小程序。再不写python就要扔键盘了,对vue还有那么一点好感,天天php真是有够烦。

准备工作

准备个文件夹放在桌面上,平时看到什么高清好图就拽进去。

Python3如何实现Win10桌面自动切换

运行脚本

脚本如下:

#!/usr/bin/python
import ctypes
import osimport random
import functools

import schedule

index = 0


def change_background(picture_path: str) -> None:
  ctypes.windll.user32.SystemParametersInfoW(20, 0, picture_path, 3)


def get_pictures(dir_path: str) -> list:
  return [os.path.join(root, name)
      for root, dirs, files in os.walk(dir_path, topdown=False)
      for name in files
      if name.endswith('jpg') or name.endswith('png')]


def log(text):
  def decorator(f):
    @functools.wraps(f)
    def wrap(*args, **kwargs):
      p = f(*args, **kwargs)
      print(f'{text}: {p}')
      return p

    return wrap

  return decorator


@log(f'DESKTOP_BG_IMG switch to')
def change_background_job(dir_path) -> None:
  if dir_path.__class__.__name__ == 'list':
    dir_path = dir_path[0]
  pictures = get_pictures(dir_path)
  index = random.randint(0, len(pictures) - 1)
  change_background(pictures[index])
  return pictures[index]


def scheduler(job: staticmethod, interval, arg_num, *args) -> None:
  if arg_num <= 0:
    schedule.every(interval).seconds.do(job)
  else:
    schedule.every(interval).seconds.do(job, [args[i] for i in range(arg_num)])
  while True:
    schedule.run_pending()


if __name__ == '__main__':
  scheduler(change_background_job, 10, 1, r'C:\Users\zenkilan\Desktop\test_pictures', 'hello', 'world')

函数scheduler接受4个以上参数:

1. 定时执行的job函数对象

2. 执行时间间隔,单位:秒

3. 函数job需要几个参数

4~*. 函数job的参数们

还可以进一步扩充,比如在get_pictures函数里面再加一些rules,低于多少mb的照片就不能作为桌面背景图之类的,接着加or就ok了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现批量监控网站
Sep 09 Python
python实现百万答题自动百度搜索答案
Jan 16 Python
Python中if elif else及缩进的使用简述
May 31 Python
python读取一个目录下所有txt里面的内容方法
Jun 23 Python
NumPy.npy与pandas DataFrame的实例讲解
Jul 09 Python
一百多行python代码实现抢票助手
Sep 25 Python
python3 读取Excel表格中的数据
Oct 16 Python
使用python将时间转换为指定的格式方法
Nov 12 Python
Python3实现mysql连接和数据框的形成(实例代码)
Jan 17 Python
python实现按日期归档文件
Jan 30 Python
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
Apr 06 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
Apr 28 Python
Python3如何使用多线程升程序运行速度
Aug 11 #Python
使用Python pip怎么升级pip
Aug 11 #Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
Aug 11 #Python
Python 代码调试技巧示例代码
Aug 11 #Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
Aug 11 #Python
Python函数递归调用实现原理实例解析
Aug 11 #Python
零基础学python应该从哪里入手
Aug 11 #Python
You might like
MySQL数据源表结构图示
2008/06/05 PHP
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
php设计模式 Decorator(装饰模式)
2011/06/26 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
JavaScript继承方式实例
2010/10/29 Javascript
JS正则中的RegExp对象对象
2012/11/07 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
2013/10/15 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
JavaScript中利用各种循环进行遍历的方式总结
2015/11/10 Javascript
详解JavaScript常量定义
2017/01/03 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
Bootstrap警告(Alerts)的实现方法
2017/03/22 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
详解使用nodeJs安装Vue-cli
2017/05/17 NodeJs
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
微信小程序获取用户openid的实现
2018/12/24 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
javascript执行上下文、变量对象实例分析
2020/04/25 Javascript
JavaScript图片旋转效果实现方法详解
2020/06/28 Javascript
Python中特殊函数集锦
2015/07/27 Python
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
pandas系列之DataFrame 行列数据筛选实例
2018/04/12 Python
Python使用Shelve保存对象方法总结
2019/01/28 Python
python Django 创建应用过程图示详解
2019/07/29 Python
详解如何减少python内存的消耗
2019/08/09 Python
python中必要的名词解释
2019/11/20 Python
Python如何生成xml文件
2020/06/04 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
python绘制分布折线图的示例
2020/09/24 Python
简述数组与指针的区别
2014/01/02 面试题
Linux的文件类型
2012/03/07 面试题
家庭经济困难证明
2015/06/23 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python
Python jiaba库的使用详解
2021/11/23 Python
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android