python读取文件夹内所有图片名称,随机设置为桌面壁纸且把设置后的图片移到其他文件夹内的方法

关键词:读取文件夹、读取文件、操作系统、设置壁纸、移动文件

 

预期实现如下几个步骤

1、获取指定文件夹内所有图片名

2、随机取一张图片设置为壁纸

3、设置为壁纸的图片移动到另外一个文件夹中

 

第一步,获取指定文件夹内所有图片名

  C盘background有两个文件夹,now文件夹存放是预备设置为壁纸的图片,ok文件夹存放已经设置为壁纸的图片

 

  

 

 

 

 

 

 

 

获取文件夹内所有图片需要导入os库,代码如下

# -*- coding: utf-8 -*-

import os

filePath = 'C:\\background\\'
test = os.listdir(filePath+"now\\")

打印test数列

 

 

 第二部,随机取值,从获取的图片名称列表中随机取出一个值,设置为壁纸,需要导入random库,代码如下

image_path = random.choice(test)
setWallpaper(filePath+"now\\"+image_path)

定义的设置为壁纸的方法,上方代码中的setWallpaper

def setWallpaper(image_path):
    key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)
    win32api.RegSetValueEx(key, "WallpaperStyle", 0, win32con.REG_SZ, "2")
    win32api.RegSetValueEx(key, "TileWallpaper", 0, win32con.REG_SZ, "0")
    win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,image_path, 1+2)

 

第三步,将设置好的图片移动到其他文件夹内,需要导入shutil库

shutil.move(filePath+"now\\"+image_path, filePath+"ok\\")

 

如此,实现了开头的1/2/3步骤,串起来整个脚本如下,可放在桌面上,壁纸看腻了,点一下就切换了,换个思路,可以从网上直接取图设置壁纸也是可行的

# -*- coding: utf-8 -*-
import win32api
import win32con
import win32gui
import os
import random
import shutil

#设置图片为桌面背景,参考地址https://blog.csdn.net/zwvista/article/details/18655
def setWallpaper(image_path):
    key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)
    win32api.RegSetValueEx(key, "WallpaperStyle", 0, win32con.REG_SZ, "2")
    win32api.RegSetValueEx(key, "TileWallpaper", 0, win32con.REG_SZ, "0")
    win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,image_path, 1+2)

#获取指定目录下所有文件名称,参考地址https://blog.csdn.net/zhuzuwei/article/details/79925562
filePath = 'C:\\background\\'
test = os.listdir(filePath+"now\\")

#从获取的图片名称列表中随机取出一个值,设置为壁纸,随机取值参考https://blog.csdn.net/weixin_39791387/article/details/84958436?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase
image_path = random.choice(test)
setWallpaper(filePath+"now\\"+image_path)

#将设置好的图片移动到其他文件夹内,参考https://blog.csdn.net/silentwolfyh/article/details/74931123
shutil.move(filePath+"now\\"+image_path, filePath+"ok\\")

print("设置成功")
    

 

posted @ 2021-03-01 22:35  小贝书屋  阅读(982)  评论(0编辑  收藏  举报